Closed
Description
My AppVeyor (Windows) tests recently started failing with this:
================================== FAILURES ===================================
________________________ TestScheduling.test_get_date _________________________
c:\python36\lib\site-packages\freezegun\api.py:494: in wrapper
with self:
c:\python36\lib\site-packages\freezegun\api.py:365: in __enter__
return self.start()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <freezegun.api._freeze_time object at 0x052C2270>
def start(self):
if self.tick:
time_to_freeze = TickingDateTimeFactory(self.time_to_freeze, real_datetime.now())
else:
time_to_freeze = FrozenDateTimeFactory(self.time_to_freeze)
# Change the modules
datetime.datetime = FakeDatetime
datetime.date = FakeDate
fake_time = FakeTime(time_to_freeze, time.time)
fake_localtime = FakeLocalTime(time_to_freeze, time.localtime)
fake_gmtime = FakeGMTTime(time_to_freeze, time.gmtime)
fake_strftime = FakeStrfTime(time_to_freeze, time.strftime)
time.time = fake_time
time.localtime = fake_localtime
time.gmtime = fake_gmtime
time.strftime = fake_strftime
uuid._uuid_generate_time = None
uuid._UuidCreate = None
copyreg.dispatch_table[real_datetime] = pickle_fake_datetime
copyreg.dispatch_table[real_date] = pickle_fake_date
# Change any place where the module had already been imported
to_patch = [
('real_date', real_date, 'FakeDate', FakeDate),
('real_datetime', real_datetime, 'FakeDatetime', FakeDatetime),
('real_gmtime', real_gmtime, 'FakeGMTTime', fake_gmtime),
('real_localtime', real_localtime, 'FakeLocalTime', fake_localtime),
('real_strftime', real_strftime, 'FakeStrfTime', fake_strftime),
('real_time', real_time, 'FakeTime', fake_time),
]
real_names = tuple(real_name for real_name, real, fake_name, fake in to_patch)
self.fake_names = tuple(fake_name for real_name, real, fake_name, fake in to_patch)
self.reals = dict((id(fake), real) for real_name, real, fake_name, fake in to_patch)
fakes = dict((id(real), fake) for real_name, real, fake_name, fake in to_patch)
add_change = self.undo_changes.append
# Save the current loaded modules
self.modules_at_start = set(sys.modules.keys())
with warnings.catch_warnings():
warnings.filterwarnings('ignore')
for mod_name, module in list(sys.modules.items()):
if mod_name is None or module is None:
continue
elif mod_name.startswith(self.ignore):
continue
elif (not hasattr(module, "__name__") or module.__name__ in ('datetime', 'time')):
continue
> for module_attribute in dir(module):
E ModuleNotFoundError: No module named 'syslog'
c:\python36\lib\site-packages\freezegun\api.py:421: ModuleNotFoundError
================ 1 failed, 202 passed in -133582692.64 seconds ================
I investigated a little, and I found out that this appears only with py
1.5.x. Rolling back to py==1.4.34
fixes the issue. Is this a bug in py
or freezegun
?
(see also: spulec/freezegun#214)
Metadata
Metadata
Assignees
Labels
No labels