Skip to content

Commit e030914

Browse files
authored
Merge pull request #5406 from benjaoming/assert-device-registration
Remove debug exception expression + testing that register device view works
2 parents e1649a6 + b617aa0 commit e030914

File tree

5 files changed

+39
-11
lines changed

5 files changed

+39
-11
lines changed

circle.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ test:
2020
- make assets
2121
- make docs
2222
- kalite start --traceback -v2
23-
- sleep 4s # Necessary for server to be ready
23+
- sleep 6s # Necessary for server to be ready
2424
- kalite status
2525
- kalite stop --traceback -v2
2626
- case $CIRCLE_NODE_INDEX in 0) coverage run --source=kalite --omit="kalite/testing/*,*/tests/*,*/migrations/*,kalite/packages/*" bin/kalite manage test --bdd-only ;; 1) coverage run --source=kalite --omit="kalite/testing/*,kalite/packages/*,*/tests/*,*/migrations/*" bin/kalite manage test --no-bdd;; esac:

kalite/distributed/features/steps/superuser_create.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def step_impl(context):
103103

104104
@then("the modal will dismiss")
105105
def impl(context):
106-
assert elem_is_invisible_with_wait(context, context.modal_element, wait_time=5), "modal not dismissed!"
106+
assert elem_is_invisible_with_wait(context, context.modal_element, wait_time=7), "modal not dismissed!"
107107

108108

109109
def fill_field(context, text, field_id):

kalite/packages/bundled/fle_utils/internet/functions.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
"""
22
For functions mucking with internet access
33
"""
4-
import ifcfg
54
import logging
65
import os
76
import platform
87
import re
98
import requests
10-
9+
from urllib import urlencode
10+
from urlparse import parse_qs, urlsplit, urlunsplit, urljoin
1111

1212
from django.conf import settings
13+
import ifcfg
14+
1315
from django.core.urlresolvers import reverse
14-
from urlparse import parse_qs, urlsplit, urlunsplit, urljoin
15-
from urllib import urlencode
16+
from requests.exceptions import ConnectionError, ReadTimeout
1617

1718

1819
logger = logging.getLogger(__name__)
@@ -25,10 +26,12 @@ def am_i_online():
2526
"""
2627
from kalite.version import user_agent
2728

29+
timeout = 15 # seconds
2830
url = urljoin(settings.CENTRAL_SERVER_URL, reverse("get_server_info"))
2931

3032
try:
31-
response = requests.get(url, timeout=5, allow_redirects=False, headers={"user-agent": user_agent()})
33+
# Based on experience, 5 seconds is too little
34+
response = requests.get(url, timeout=timeout, allow_redirects=False, headers={"user-agent": user_agent()})
3235

3336
# Validate that response came from the requested url
3437
if response.status_code != 200:
@@ -38,6 +41,17 @@ def am_i_online():
3841

3942
return True
4043

44+
except ReadTimeout:
45+
logger.info(
46+
("Assuming offline status, timeout={} seconds, timed out while "
47+
"fetching {}").format(timeout, url)
48+
)
49+
return False
50+
except ConnectionError:
51+
logger.info(
52+
"Assuming offline status, connection error while fetching {}".format(url)
53+
)
54+
return False
4155
except Exception as e:
4256
logger.warning("Unhandled exception when detecting if online: {}".format(e))
4357
return False

kalite/packages/bundled/securesync/devices/views.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ def initialize_registration():
4343
@render_to("securesync/register_public_key_client.html")
4444
def register_public_key_client(request):
4545

46-
raise Exception("Ben is testing")
47-
4846
# Delete the registration state from the session to ensure it is refreshed next pageload
4947
del request.session["registered"]
5048

kalite/updates/tests/regression_tests.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import logging
12
import requests
23

34
from django.test.utils import override_settings
@@ -8,6 +9,11 @@
89

910
from kalite.testing.base import KALiteClientTestCase
1011
from kalite.testing.mixins.django_mixins import CreateAdminMixin
12+
from requests.exceptions import ConnectionError
13+
14+
15+
logger = logging.getLogger(__name__)
16+
1117

1218
class RegistrationRedirectTestCase(CreateAdminMixin, KALiteClientTestCase):
1319
"""
@@ -23,13 +29,23 @@ def setUp(self):
2329
self.client.login(**admin_data)
2430

2531
def test_online(self):
26-
response = requests.get("http://google.com",)
27-
google_is_online = response.status_code in (200, 301)
32+
try:
33+
response = requests.get("http://google.com",)
34+
google_is_online = response.status_code in (200, 301)
35+
except ConnectionError:
36+
logger.warning("Running test_online while offline")
37+
google_is_online = False
38+
2839
self.assertEqual(am_i_online(), google_is_online)
2940

3041
@override_settings(CENTRAL_SERVER_URL="http://127.0.0.1:8997") # We hope this is unreachable
3142
def test_not_redirected_when_offline(self):
3243
self.assertFalse(Device.get_own_device().is_registered(), "The device should be unregistered!")
44+
45+
register_device_url = self.reverse("register_public_key")
46+
response = self.client.get(register_device_url, follow=False)
47+
self.assertEqual(response.status_code, 200)
48+
3349
self.assertFalse(am_i_online(), "Central server should be unreachable!")
3450
updated_videos_url = self.reverse("update_videos")
3551
response = self.client.get(updated_videos_url, follow=True)

0 commit comments

Comments
 (0)