commit 7e6885926987b191d0eb0145240e334cd5347e84 Author: Arturo Filastò art@fuffa.org Date: Tue Aug 27 17:16:02 2013 +0200
Implement more thorough end 2 end tests for oonibackend --- ooni/tests/test_oonibclient.py | 42 ++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-)
diff --git a/ooni/tests/test_oonibclient.py b/ooni/tests/test_oonibclient.py index 0f22786..aef48b7 100644 --- a/ooni/tests/test_oonibclient.py +++ b/ooni/tests/test_oonibclient.py @@ -12,12 +12,14 @@ from ooni.oonibclient import OONIBClient
data_dir = '/tmp/testooni' config.advanced.data_dir = data_dir + input_id = '37e60e13536f6afe47a830bfb6b371b5cf65da66d7ad65137344679b24fdccd1' +deck_id = 'd4ae40ecfb3c1b943748cce503ab8233efce7823f3e391058fc0f87829c644ed'
class TestOONIBClient(unittest.TestCase): def setUp(self): host = '127.0.0.1' - port = 8888 + port = 8889 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: s.connect((host, port)) @@ -26,6 +28,7 @@ class TestOONIBClient(unittest.TestCase): except: pass os.mkdir(data_dir) os.mkdir(os.path.join(data_dir, 'inputs')) + os.mkdir(os.path.join(data_dir, 'decks')) except Exception as ex: self.skipTest("OONIB must be listening on port 8888 to run this test (tor_hidden_service: false)") self.oonibclient = OONIBClient('http://' + host + ':' + str(port)) @@ -53,16 +56,22 @@ class TestOONIBClient(unittest.TestCase):
@defer.inlineCallbacks def test_get_deck_list(self): - input_list = yield self.oonibclient.getInputList() - self.assertTrue(isinstance(input_list, list)) + deck_list = yield self.oonibclient.getDeckList() + self.assertTrue(isinstance(deck_list, list))
+ @defer.inlineCallbacks def test_get_deck_descriptor(self): - pass + deck_descriptor = yield self.oonibclient.getDeck(deck_id) + for key in ['name', 'description', + 'version', 'author', 'date', 'id']: + self.assertTrue(hasattr(deck_descriptor, key))
+ @defer.inlineCallbacks def test_download_deck(self): - pass + yield self.oonibclient.downloadDeck(deck_id)
def test_lookup_invalid_helpers(self): + self.oonibclient.address = 'http://127.0.0.1:8888' return self.failUnlessFailure( self.oonibclient.lookupTestHelpers([ 'sdadsadsa', 'dns' @@ -70,17 +79,26 @@ class TestOONIBClient(unittest.TestCase):
@defer.inlineCallbacks def test_lookup_test_helpers(self): + self.oonibclient.address = 'http://127.0.0.1:8888' required_helpers = [u'http-return-json-headers', u'dns'] helpers = yield self.oonibclient.lookupTestHelpers(required_helpers) self.assertEqual(set(helpers.keys()), set(required_helpers + [u'default']))
@defer.inlineCallbacks - def test_get_nettest_list(self): - input_list = yield self.oonibclient.getInputList() - self.assertTrue(isinstance(input_list, list)) + def test_invalid_requests(self): + + @defer.inlineCallbacks + def all_requests(path): + for mthd in ['GET', 'POST', 'PUT', 'OPTION']: + try: + yield self.oonibclient.queryBackend(mthd, path) + except: + pass
- def test_get_nettest_descriptor(self): - pass + for path in ['/policy/input', '/policy/nettest', + '/input', '/input/'+'a'*64, '/fooo']: + yield all_requests(path)
- def test_download_nettest(self): - pass + for path in ['/bouncer']: + self.oonibclient.address = 'http://127.0.0.1:8888' + yield all_requests(path)
tor-commits@lists.torproject.org