[tor-commits] [ooni-probe/master] Start outlining unittests for director

isis at torproject.org isis at torproject.org
Sun Mar 10 01:57:01 UTC 2013


commit a90f2d1e06f707c8cc86efb8d17dbff59b86e90b
Author: Arturo Filastò <art at fuffa.org>
Date:   Sun Jan 13 20:23:34 2013 +0100

    Start outlining unittests for director
---
 ooni/director.py       |    8 ++---
 tests/test_director.py |   66 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 5 deletions(-)

diff --git a/ooni/director.py b/ooni/director.py
index 1ef5aab..582bb84 100644
--- a/ooni/director.py
+++ b/ooni/director.py
@@ -143,10 +143,8 @@ class Director(object):
         report.reportEntryManager = self.reportEntryManager
 
         net_test = NetTest(net_test_file, options, report)
-        net_test.measurmentManager = self.measurementManager
+        net_test.measurementManager = self.measurementManager
 
-        try:
-            net_test.start()
-        except Exception, e:
-            pass
+        d = net_test.start()
+        return d
 
diff --git a/tests/test_director.py b/tests/test_director.py
new file mode 100644
index 0000000..fa13d9e
--- /dev/null
+++ b/tests/test_director.py
@@ -0,0 +1,66 @@
+from twisted.internet import defer, base
+from twisted.trial import unittest
+
+from ooni.director import Director
+base.DelayedCall.debug = True
+class MockMeasurement(object):
+    def run(self):
+        return defer.succeed(42)
+
+net_test_string = """
+from twisted.python import usage
+from ooni.nettest import NetTestCase
+
+class UsageOptions(usage.Options):
+    optParameters = [['spam', 's', None, 'ham']]
+
+class DummyTestCase(NetTestCase):
+    inputFile = ['file', 'f', None, 'The input File']
+
+    usageOptions = UsageOptions
+
+    def test_a(self):
+        self.report['bar'] = 'bar'
+
+    def test_b(self):
+        self.report['foo'] = 'foo'
+"""
+
+
+dummyOptions = {'spam': 1, 'file': 'dummyInputFile.txt'}
+
+class MockReporter(object):
+    def __init__(self):
+        self.created = defer.succeed(None)
+
+    def createReport(self):
+        pass
+
+    def write(self):
+        pass
+
+class TestDirector(unittest.TestCase):
+    def setUp(self):
+        with open('dummyInputFile.txt', 'w') as f:
+            for i in range(10):
+                f.write("%s\n" % i)
+
+        reporters = [MockReporter]
+        self.director = Director(reporters)
+
+    def tearDown(self):
+        pass
+
+    def test_start_net_test(self):
+        d = self.director.startTest(net_test_string, dummyOptions)
+
+        @d.addCallback
+        def done(result):
+            print "SOMETHING"
+            self.assertEqual(self.director.successfulMeasurements, 20)
+
+        return d
+
+    def test_stop_net_test(self):
+        pass
+





More information about the tor-commits mailing list