summaryrefslogtreecommitdiff
path: root/dev-python/freezegun/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-12-15 18:09:03 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-12-15 18:09:03 +0000
commit7bc9c63c9da678a7e6fceb095d56c634afd22c56 (patch)
tree4a67d50a439e9af63947e5f8b6ba3719af98b6c9 /dev-python/freezegun/files
parentb284a3168fa91a038925d2ecf5e4791011ea5e7d (diff)
gentoo resync : 15.12.2019
Diffstat (limited to 'dev-python/freezegun/files')
-rw-r--r--dev-python/freezegun/files/freezegun-0.3.12-py38.patch122
-rw-r--r--dev-python/freezegun/files/freezegun-0.3.12-tests.patch13
2 files changed, 135 insertions, 0 deletions
diff --git a/dev-python/freezegun/files/freezegun-0.3.12-py38.patch b/dev-python/freezegun/files/freezegun-0.3.12-py38.patch
new file mode 100644
index 000000000000..d35303bf9fe5
--- /dev/null
+++ b/dev-python/freezegun/files/freezegun-0.3.12-py38.patch
@@ -0,0 +1,122 @@
+commit 4d998c9d6b130ed4e2d54cb96b010fec749a9c59
+Author: xtreak <tir.karthi@gmail.com>
+Date: Wed Jun 19 14:54:22 2019 +0000
+
+ Patch time.time_ns to support Python 3.8
+
+diff --git a/CHANGELOG b/CHANGELOG
+index efac4d3..14d96be 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -11,6 +11,7 @@ Latest
+ * Ignore Selenium
+ * Move to pytest
+ * Conditionally patch time.clock
++* Patch time.time_ns added in Python 3.7
+
+ 0.3.11
+ ------
+@@ -57,4 +58,4 @@ Latest
+
+ * Add `tick` argument to allow time to move forward
+ * Performance improvements
+-* Fix timezone example in README
+\ No newline at end of file
++* Fix timezone example in README
+diff --git a/freezegun/api.py b/freezegun/api.py
+index 5e7d7fa..bc61270 100644
+--- a/freezegun/api.py
++++ b/freezegun/api.py
+@@ -20,6 +20,7 @@ try:
+ except ImportError:
+ MayaDT = None
+
++_TIME_NS_PRESENT = hasattr(time, 'time_ns')
+
+ real_time = time.time
+ real_localtime = time.localtime
+@@ -28,6 +29,11 @@ real_strftime = time.strftime
+ real_date = datetime.date
+ real_datetime = datetime.datetime
+ real_date_objects = [real_time, real_localtime, real_gmtime, real_strftime, real_date, real_datetime]
++
++if _TIME_NS_PRESENT:
++ real_time_ns = time.time_ns
++ real_date_objects.append(real_time_ns)
++
+ _real_time_object_ids = set(id(obj) for obj in real_date_objects)
+
+ # time.clock is deprecated and was removed in Python 3.8
+@@ -175,6 +181,12 @@ def fake_time():
+ current_time = get_current_time()
+ return calendar.timegm(current_time.timetuple()) + current_time.microsecond / 1000000.0
+
++if _TIME_NS_PRESENT:
++ def fake_time_ns():
++ if _should_use_real_time():
++ return real_time_ns()
++ return int(int(fake_time()) * 1e9)
++
+
+ def fake_localtime(t=None):
+ if t is not None:
+@@ -331,7 +343,7 @@ class FakeDatetime(with_metaclass(FakeDatetimeMeta, real_datetime, FakeDate)):
+
+ def date(self):
+ return date_to_fakedate(self)
+-
++
+ @property
+ def nanosecond(self):
+ try:
+@@ -599,6 +611,10 @@ class _freeze_time(object):
+ ('real_time', real_time, fake_time),
+ ]
+
++ if _TIME_NS_PRESENT:
++ time.time_ns = fake_time_ns
++ to_patch.append(('real_time_ns', real_time_ns, fake_time_ns))
++
+ if real_clock is not None:
+ # time.clock is deprecated and was removed in Python 3.8
+ time.clock = fake_clock
+@@ -741,7 +757,7 @@ def freeze_time(time_to_freeze=None, tz_offset=0, ignore=None, tick=False, as_ar
+ ignore.append('selenium')
+ ignore.append('_pytest.terminal.')
+ ignore.append('_pytest.runner.')
+-
++
+ return _freeze_time(time_to_freeze, tz_offset, ignore, tick, as_arg, auto_tick_seconds)
+
+
+diff --git a/tests/test_datetimes.py b/tests/test_datetimes.py
+index cfef4a1..688fdce 100644
+--- a/tests/test_datetimes.py
++++ b/tests/test_datetimes.py
+@@ -19,6 +19,7 @@ except ImportError:
+
+ # time.clock was removed in Python 3.8
+ HAS_CLOCK = hasattr(time, 'clock')
++HAS_TIME_NS = hasattr(time, 'time_ns')
+
+ class temp_locale(object):
+ """Temporarily change the locale."""
+@@ -656,3 +657,18 @@ def test_should_use_real_time():
+ assert time.gmtime() != expected_frozen_gmt
+ if HAS_CLOCK:
+ assert time.clock() != expected_clock
++
++
++@pytest.mark.skipif(not HAS_TIME_NS,
++ reason="time.time_ns is present only on 3.7 and above")
++def test_time_ns():
++ freezer = freeze_time("2012-01-14")
++ local_time = datetime.datetime(2012, 1, 14)
++ utc_time = local_time - datetime.timedelta(seconds=time.timezone)
++ expected_timestamp = time.mktime(utc_time.timetuple())
++
++ freezer.start()
++ assert time.time() == expected_timestamp
++ assert time.time_ns() == expected_timestamp * 1e9
++ freezer.stop()
++ assert time.time() != expected_timestamp
diff --git a/dev-python/freezegun/files/freezegun-0.3.12-tests.patch b/dev-python/freezegun/files/freezegun-0.3.12-tests.patch
new file mode 100644
index 000000000000..08543fc7d595
--- /dev/null
+++ b/dev-python/freezegun/files/freezegun-0.3.12-tests.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/test_datetimes.py b/tests/test_datetimes.py
+index 688fdce..a61484d 100644
+--- a/tests/test_datetimes.py
++++ b/tests/test_datetimes.py
+@@ -18,7 +18,7 @@ except ImportError:
+ maya = None
+
+ # time.clock was removed in Python 3.8
+-HAS_CLOCK = hasattr(time, 'clock')
++HAS_CLOCK = hasattr(time, 'clock') and getattr(time, 'clock') is not None
+ HAS_TIME_NS = hasattr(time, 'time_ns')
+
+ class temp_locale(object):