diff options
author | drebs <drebs@leap.se> | 2013-04-30 15:37:37 -0300 |
---|---|---|
committer | drebs <drebs@leap.se> | 2013-04-30 15:37:37 -0300 |
commit | 1b9009c0b67e6209abbb7047b1edea7961bd3256 (patch) | |
tree | 5059da0cdee2bb5ad7177cdc3b703bfdd02774df /src/leap/soledad/tests/test_leap_backend.py | |
parent | b567343c7b4daa54a05ed31592078fc69966f421 (diff) |
Update tests with monkey patching to always use our SyncTarget.
Diffstat (limited to 'src/leap/soledad/tests/test_leap_backend.py')
-rw-r--r-- | src/leap/soledad/tests/test_leap_backend.py | 103 |
1 files changed, 34 insertions, 69 deletions
diff --git a/src/leap/soledad/tests/test_leap_backend.py b/src/leap/soledad/tests/test_leap_backend.py index 7509af0e..4c76bbb9 100644 --- a/src/leap/soledad/tests/test_leap_backend.py +++ b/src/leap/soledad/tests/test_leap_backend.py @@ -1,7 +1,23 @@ -"""Test ObjectStore backend bits. +# -*- coding: utf-8 -*- +# test_leap_backend.py +# Copyright (C) 2013 LEAP +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. -For these tests to run, a leap server has to be running on (default) port -5984. + +""" +Test Leap backend bits. """ import u1db @@ -12,9 +28,11 @@ except ImportError: from leap.soledad.backends import leap_backend +from leap.soledad.server import SoledadApp + + from leap.soledad.tests import u1db_tests as tests from leap.soledad.tests.u1db_tests.test_remote_sync_target import ( - make_http_app, make_oauth_http_app, ) from leap.soledad.tests import BaseSoledadTest @@ -36,12 +54,16 @@ def make_leap_document_for_test(test, doc_id, rev, content, doc_id, rev, content, has_conflicts=has_conflicts) +def make_soledad_app(state): + return SoledadApp(state) + + LEAP_SCENARIOS = [ ('http', { 'make_database_for_test': test_backends.make_http_database_for_test, 'copy_database_for_test': test_backends.copy_http_database_for_test, 'make_document_for_test': make_leap_document_for_test, - 'make_app_with_state': make_http_app}), + 'make_app_with_state': make_soledad_app}), ] @@ -55,6 +77,9 @@ class LeapTests(test_backends.AllDatabaseTests, BaseSoledadTest): #----------------------------------------------------------------------------- class TestLeapClientBase(test_http_client.TestHTTPClientBase): + """ + This class should be used to test Token auth. + """ pass @@ -89,6 +114,9 @@ class TestLeapSyncTargetBasics( self.assertEqual('/', remote_target._url.path) +# Monkey patch test class so it uses our sync target. +test_remote_sync_target.http_target.HTTPSyncTarget = leap_backend.LeapSyncTarget + class TestLeapParsingSyncStream( test_remote_sync_target.TestParsingSyncStream, BaseSoledadTest): @@ -101,53 +129,6 @@ class TestLeapParsingSyncStream( test_remote_sync_target.TestParsingSyncStream.tearDown(self) BaseSoledadTest.tearDown(self) - def test_wrong_start(self): - """ - Test adapted to use a LeapSyncTarget. - """ - tgt = leap_backend.LeapSyncTarget("http://foo/foo") - - self.assertRaises(u1db.errors.BrokenSyncStream, - tgt._parse_sync_stream, "{}\r\n]", None) - - self.assertRaises(u1db.errors.BrokenSyncStream, - tgt._parse_sync_stream, "\r\n{}\r\n]", None) - - self.assertRaises(u1db.errors.BrokenSyncStream, - tgt._parse_sync_stream, "", None) - - def test_wrong_end(self): - """ - Test adapted to use a LeapSyncTarget. - """ - tgt = leap_backend.LeapSyncTarget("http://foo/foo") - - self.assertRaises(u1db.errors.BrokenSyncStream, - tgt._parse_sync_stream, "[\r\n{}", None) - - self.assertRaises(u1db.errors.BrokenSyncStream, - tgt._parse_sync_stream, "[\r\n", None) - - def test_missing_comma(self): - """ - Test adapted to use a LeapSyncTarget. - """ - tgt = leap_backend.LeapSyncTarget("http://foo/foo") - - self.assertRaises(u1db.errors.BrokenSyncStream, - tgt._parse_sync_stream, - '[\r\n{}\r\n{"id": "i", "rev": "r", ' - '"content": "c", "gen": 3}\r\n]', None) - - def test_no_entries(self): - """ - Test adapted to use a LeapSyncTarget. - """ - tgt = leap_backend.LeapSyncTarget("http://foo/foo") - - self.assertRaises(u1db.errors.BrokenSyncStream, - tgt._parse_sync_stream, "[\r\n]", None) - def test_extra_comma(self): """ Test adapted to use encrypted content. @@ -168,22 +149,6 @@ class TestLeapParsingSyncStream( ',\r\n]' % json.dumps(enc_json), lambda doc, gen, trans_id: None) - def test_error_in_stream(self): - tgt = leap_backend.LeapSyncTarget("http://foo/foo") - - self.assertRaises(u1db.errors.Unavailable, - tgt._parse_sync_stream, - '[\r\n{"new_generation": 0},' - '\r\n{"error": "unavailable"}\r\n', None) - - self.assertRaises(u1db.errors.Unavailable, - tgt._parse_sync_stream, - '[\r\n{"error": "unavailable"}\r\n', None) - - self.assertRaises(u1db.errors.BrokenSyncStream, - tgt._parse_sync_stream, - '[\r\n{"error": "?"}\r\n', None) - def leap_sync_target(test, path): return leap_backend.LeapSyncTarget(test.getURL(path)) @@ -199,7 +164,7 @@ def oauth_leap_sync_target(test, path): class TestRemoteSyncTargets(tests.TestCaseWithServer): scenarios = [ - ('http', {'make_app_with_state': make_http_app, + ('http', {'make_app_with_state': make_soledad_app, 'make_document_for_test': make_leap_document_for_test, 'sync_target': leap_sync_target}), ('oauth_http', {'make_app_with_state': make_oauth_http_app, |