From ec648ea7536e05d6e681c3614f0acb39c31bb344 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Sun, 1 Sep 2013 18:10:24 +0100 Subject: [PATCH 1/4] Added HTTPS functional tests --- run_functional_tests | 9 +++++++++ tests/functional/README.markdown | 9 +++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/run_functional_tests b/run_functional_tests index ee3c8fa..c918073 100755 --- a/run_functional_tests +++ b/run_functional_tests @@ -42,3 +42,12 @@ export TROVEBOX_TEST_CONFIG=test-hosted unset TROVEBOX_TEST_SERVER_API python -m unittest discover --catch tests/functional +# Test account on hosted trovebox.com site over HTTPS +tput setaf 3 +echo +echo "Testing latest hosted site over HTTPS..." +tput sgr0 +export TROVEBOX_TEST_CONFIG=test-hosted-https +unset TROVEBOX_TEST_SERVER_API +python -m unittest discover --catch tests/functional + diff --git a/tests/functional/README.markdown b/tests/functional/README.markdown index 5a22abc..6a20718 100644 --- a/tests/functional/README.markdown +++ b/tests/functional/README.markdown @@ -99,7 +99,8 @@ all supported API versions. To use it, you must set up multiple Trovebox instances and create the following config files containing your credentials: - test : Latest self-hosted site (from photo/frontend master branch) - test-apiv1 : APIv1 self-hosted site (from photo/frontend commit 660b2ab) - test-3.0.8 : v3.0.8 self-hosted site (from photo/frontend commit e9d81de57b) - test-hosted : Credentials for test account on trovebox.com + test : Latest self-hosted site (from photo/frontend master branch) + test-apiv1 : APIv1 self-hosted site (from photo/frontend commit 660b2ab) + test-3.0.8 : v3.0.8 self-hosted site (from photo/frontend commit e9d81de57b) + test-hosted : Credentials for test account on http://.trovebox.com + test-hosted-https : Same as test-hosted, but with https:// From 13331efe0d752e977f4b13426a78898a8addeda5 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Sun, 1 Sep 2013 18:11:00 +0100 Subject: [PATCH 2/4] Updated functional tests to use new configuration format when specifying API version --- tests/functional/test_base.py | 4 ++-- tests/functional/test_framework.py | 15 +++++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/tests/functional/test_base.py b/tests/functional/test_base.py index 8a67d0b..f7e4c25 100644 --- a/tests/functional/test_base.py +++ b/tests/functional/test_base.py @@ -42,8 +42,8 @@ class TestBase(unittest.TestCase): else: print("\nTesting %s v%d" % (cls.testcase_name, cls.api_version)) - cls.client = trovebox.Trovebox(config_file=cls.config_file, - api_version=cls.api_version) + cls.client = trovebox.Trovebox(config_file=cls.config_file) + cls.client.configure(api_version=cls.api_version) if cls.client.photos.list() != []: raise ValueError("The test server (%s) contains photos. " diff --git a/tests/functional/test_framework.py b/tests/functional/test_framework.py index 8495f0d..9444e4b 100644 --- a/tests/functional/test_framework.py +++ b/tests/functional/test_framework.py @@ -16,8 +16,8 @@ class TestFramework(test_base.TestBase): """ API v0 has a special hello world message """ - client = trovebox.Trovebox(config_file=self.config_file, - api_version=0) + client = trovebox.Trovebox(config_file=self.config_file) + client.configure(api_version=0) result = client.get("hello.json") self.assertEqual(result['message'], "Hello, world! This is version zero of the API!") @@ -28,8 +28,8 @@ class TestFramework(test_base.TestBase): For all API versions >0, we get a generic hello world message """ for api_version in range(1, test_base.get_test_server_api() + 1): - client = trovebox.Trovebox(config_file=self.config_file, - api_version=api_version) + client = trovebox.Trovebox(config_file=self.config_file) + client.configure(api_version=api_version) result = client.get("hello.json") self.assertEqual(result['message'], "Hello, world!") self.assertEqual(result['result']['__route__'], @@ -40,8 +40,7 @@ class TestFramework(test_base.TestBase): If the API version is unspecified, we get a generic hello world message. """ - client = trovebox.Trovebox(config_file=self.config_file, - api_version=None) + client = trovebox.Trovebox(config_file=self.config_file) result = client.get("hello.json") self.assertEqual(result['message'], "Hello, world!") self.assertEqual(result['result']['__route__'], "/hello.json") @@ -52,7 +51,7 @@ class TestFramework(test_base.TestBase): (ValueError, since the returned 404 HTML page is not valid JSON) """ version = trovebox.LATEST_API_VERSION + 1 - client = trovebox.Trovebox(config_file=self.config_file, - api_version=version) + client = trovebox.Trovebox(config_file=self.config_file) + client.configure(api_version=version) with self.assertRaises(trovebox.Trovebox404Error): client.get("hello.json") From ba503bea6b5a085261d047a93b42a85e18580f00 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Sun, 1 Sep 2013 18:35:28 +0100 Subject: [PATCH 3/4] Whitespace trim --- tests/functional/test_activities.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/functional/test_activities.py b/tests/functional/test_activities.py index 3c3f68f..a935fa7 100644 --- a/tests/functional/test_activities.py +++ b/tests/functional/test_activities.py @@ -7,9 +7,9 @@ from tests.functional import test_base class TestActivities(test_base.TestBase): testcase_name = "activity API" - + def test_list(self): - """ + """ Upload three photos, and check that three corresponding activities are created. """ @@ -36,7 +36,7 @@ class TestActivities(test_base.TestBase): """ Test that the view endpoint is working correctly """ activity = self.client.activities.list()[0] fields = activity.get_fields().copy() - + # Check that the view method returns the same data as the list activity.view() self.assertEqual(fields, activity.get_fields()) From 016792b65306c321c351fd83a44fdfec9f156d3f Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Sun, 1 Sep 2013 18:52:42 +0100 Subject: [PATCH 4/4] Updated functional tests to run Actions and Activities on all API versions --- tests/functional/__init__.py | 2 ++ tests/functional/api_versions/__init__.py | 2 ++ tests/functional/api_versions/test_v1.py | 7 +++++++ tests/functional/api_versions/test_v2.py | 14 +++++++++++++- tests/functional/test_activities.py | 2 ++ 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/tests/functional/__init__.py b/tests/functional/__init__.py index e69de29..651585a 100644 --- a/tests/functional/__init__.py +++ b/tests/functional/__init__.py @@ -0,0 +1,2 @@ +# __init__.py + diff --git a/tests/functional/api_versions/__init__.py b/tests/functional/api_versions/__init__.py index e69de29..651585a 100644 --- a/tests/functional/api_versions/__init__.py +++ b/tests/functional/api_versions/__init__.py @@ -0,0 +1,2 @@ +# __init__.py + diff --git a/tests/functional/api_versions/test_v1.py b/tests/functional/api_versions/test_v1.py index aa3c652..621602d 100644 --- a/tests/functional/api_versions/test_v1.py +++ b/tests/functional/api_versions/test_v1.py @@ -1,5 +1,12 @@ +from tests.functional import test_activities, test_actions from tests.functional import test_albums, test_photos, test_tags +class TestActivitiesV1(test_activities.TestActivities): + api_version = 1 + +class TestActionsV1(test_actions.TestActions): + api_version = 1 + class TestAlbumsV1(test_albums.TestAlbums): api_version = 1 diff --git a/tests/functional/api_versions/test_v2.py b/tests/functional/api_versions/test_v2.py index a2c425c..80b204e 100644 --- a/tests/functional/api_versions/test_v2.py +++ b/tests/functional/api_versions/test_v2.py @@ -2,7 +2,19 @@ try: import unittest2 as unittest except ImportError: import unittest -from tests.functional import test_base, test_albums, test_photos, test_tags + +from tests.functional import test_base, test_activities, test_actions +from tests.functional import test_albums, test_photos, test_tags + +@unittest.skipIf(test_base.get_test_server_api() < 2, + "Don't test future API versions") +class TestActivitiesV2(test_activities.TestActivities): + api_version = 2 + +@unittest.skipIf(test_base.get_test_server_api() < 2, + "Don't test future API versions") +class TestActionsV2(test_actions.TestActions): + api_version = 2 @unittest.skipIf(test_base.get_test_server_api() < 2, "Don't test future API versions") diff --git a/tests/functional/test_activities.py b/tests/functional/test_activities.py index a935fa7..1475235 100644 --- a/tests/functional/test_activities.py +++ b/tests/functional/test_activities.py @@ -8,6 +8,8 @@ from tests.functional import test_base class TestActivities(test_base.TestBase): testcase_name = "activity API" + @unittest.skipIf(test_base.get_test_server_api() == 1, + "The activity/list endpoint behaves differenty at v1") def test_list(self): """ Upload three photos, and check that three corresponding activities