[tor-commits] [stem/master] Adding datetime_to_unix() util function
atagar at torproject.org
atagar at torproject.org
Sun Oct 4 18:42:39 UTC 2015
commit fe03a01c97cb9fd41a07f7f1bb6facb633fdbbd2
Author: Damian Johnson <atagar at torproject.org>
Date: Sun Oct 4 11:46:16 2015 -0700
Adding datetime_to_unix() util function
Our descriptors provide datetime objects. This is great, but often we want a
unix timestamp instead. Python's datetime builtin truly sucks so need a util
for this.
---
docs/change_log.rst | 4 ++++
stem/util/__init__.py | 16 ++++++++++++++++
test/settings.cfg | 1 +
test/unit/util/__init__.py | 12 ++++++++++++
4 files changed, 33 insertions(+)
diff --git a/docs/change_log.rst b/docs/change_log.rst
index 727b0cb..cfd26d1 100644
--- a/docs/change_log.rst
+++ b/docs/change_log.rst
@@ -61,6 +61,10 @@ The following are only available within Stem's `git repository
* Unable to read descriptors from data directories on Windows due to their CRLF newlines (:trac:`17051`)
* TypeError under python3 when using 'use_mirrors = True' (:trac:`17083`)
+ * **Utilities**
+
+ * Added :func:`stem.util.datetime_to_unix`
+
* **Interpreter**
* Added a '--tor [path]' argument to specify the tor binary to run.
diff --git a/stem/util/__init__.py b/stem/util/__init__.py
index 1c18df3..b7f0a3c 100644
--- a/stem/util/__init__.py
+++ b/stem/util/__init__.py
@@ -18,3 +18,19 @@ __all__ = [
'test_tools',
'tor_tools',
]
+
+import datetime
+
+
+def datetime_to_unix(timestamp):
+ """
+ Converts a utc datetime object to a unix timestamp.
+
+ .. versionadded:: 1.5.0
+
+ :param datetime timestamp: timestamp to be converted
+
+ :returns: **float** for the unix timestamp of the given datetime object
+ """
+
+ return (timestamp - datetime.datetime(1970, 1, 1)).total_seconds()
diff --git a/test/settings.cfg b/test/settings.cfg
index 0b050d5..fffbdcf 100644
--- a/test/settings.cfg
+++ b/test/settings.cfg
@@ -158,6 +158,7 @@ test.unit_tests
|test.unit.util.str_tools.TestStrTools
|test.unit.util.system.TestSystem
|test.unit.util.tor_tools.TestTorTools
+|test.unit.util.__init__.TestBaseUtil
|test.unit.descriptor.export.TestExport
|test.unit.descriptor.reader.TestDescriptorReader
|test.unit.descriptor.remote.TestDescriptorDownloader
diff --git a/test/unit/util/__init__.py b/test/unit/util/__init__.py
index 04ab051..e755625 100644
--- a/test/unit/util/__init__.py
+++ b/test/unit/util/__init__.py
@@ -11,3 +11,15 @@ __all__ = [
'system',
'tor_tools',
]
+
+import datetime
+import time
+import unittest
+
+from stem.util import datetime_to_unix
+
+
+class TestBaseUtil(unittest.TestCase):
+ def test_datetime_to_unix(self):
+ self.assertEqual(1344251971.0, datetime_to_unix(datetime.datetime(2012, 8, 6, 11, 19, 31)))
+ self.assertTrue((time.time() - datetime_to_unix(datetime.datetime.utcnow())) < 2)
More information about the tor-commits
mailing list