summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2015-10-24 13:28:24 -0700
committerJesse Morgan <jesse@jesterpm.net>2015-10-24 13:28:24 -0700
commit95ee2046715024e7eedf663e09161933689a7aef (patch)
tree9a0bf8dfaa91ef97f24671a53d51d0829ce2a48f /tests
Initial commit.
Diffstat (limited to 'tests')
-rw-r--r--tests/__init__.py0
-rw-r--r--tests/test_canarydb.py66
2 files changed, 66 insertions, 0 deletions
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/__init__.py
diff --git a/tests/test_canarydb.py b/tests/test_canarydb.py
new file mode 100644
index 0000000..5a0fc23
--- /dev/null
+++ b/tests/test_canarydb.py
@@ -0,0 +1,66 @@
+import unittest
+import tempfile, shutil
+import datetime
+
+from emailcanary import canarydb
+
+class TestCanaryDB(unittest.TestCase):
+ def setUp(self):
+ self.tempdir = tempfile.mkdtemp()
+ self.db = canarydb.CanaryDB(self.tempdir + "canary.db")
+
+ def tearDown(self):
+ self.db.close()
+ shutil.rmtree(self.tempdir)
+
+ def testPingCheckPong(self):
+ address = "test@example.com"
+ time = datetime.datetime(2015, 10, 24, 9, 00)
+ uuid = "1234"
+ expectedDelta = datetime.datetime.now() - time
+
+ # Record a Ping
+ self.db.ping(address, time, uuid)
+
+ # Check for missing pongs
+ missing = self.db.get_missing_pongs()
+
+ self.assertEqual(1, len(missing))
+ firstMissing = missing[0]
+ self.assertEqual(3, len(firstMissing))
+ self.assertEqual(uuid, firstMissing[0])
+ self.assertEqual(address, firstMissing[1])
+ delta = firstMissing[2].total_seconds() - expectedDelta.total_seconds()
+ self.assertTrue(delta <= 10)
+
+ # Record a pong
+ pongtime = datetime.datetime(2015, 10, 24, 9, 05)
+ self.db.pong(address, pongtime, uuid)
+
+ # Check for missing pongs
+ missing = self.db.get_missing_pongs()
+ self.assertEqual(0, len(missing))
+
+ def testCloseReopen(self):
+ address = "test@example.com"
+ time = datetime.datetime(2015, 10, 24, 9, 00)
+ uuid = "1234"
+ expectedDelta = datetime.datetime.now() - time
+
+ # Record a Ping
+ self.db.ping(address, time, uuid)
+
+ # Close, Reopen
+ self.db.close()
+ self.db = canarydb.CanaryDB(self.tempdir + "canary.db")
+
+ # Check for missing pongs
+ missing = self.db.get_missing_pongs()
+
+ self.assertEqual(1, len(missing))
+ firstMissing = missing[0]
+ self.assertEqual(3, len(firstMissing))
+ self.assertEqual(uuid, firstMissing[0])
+ self.assertEqual(address, firstMissing[1])
+ delta = firstMissing[2].total_seconds() - expectedDelta.total_seconds()
+ self.assertTrue(delta <= 10)