Skip to content

Race condition in timezone tests #36

Closed
@mweinelt

Description

@mweinelt

I'm on python-datemath-1.5.5 and I can reproduce this race condition with a high reliability. Maybe something like freezegun could help.

_______________________________ TestDM.testParse _______________________________

self = <tests.TestDM testMethod=testParse>

    def testParse(self):
        # Make sure our helpers return the correct objects
        self.assertIsInstance(datemath('now'), pydatetime)
        self.assertIsInstance(dm('now'), arrow.arrow.Arrow)
    
        # Baisc dates
        self.assertEqual(dm('2016.01.02').format(iso8601), '2016-01-02T00:00:00+00:00')
        self.assertEqual(dm('2016-01-02').format(iso8601), '2016-01-02T00:00:00+00:00')
        self.assertEqual(dm('2016-01-02 01:00:00').format(iso8601), '2016-01-02T01:00:00+00:00')
    
        # Rounding Tests
        self.assertEqual(dm('2016-01-01||/d').format('YYYY-MM-DDTHH:mm:ssZZ'), '2016-01-01T00:00:00+00:00')
        self.assertEqual(dm('2014-11-18||/y').format('YYYY-MM-DDTHH:mm:ssZZ'), '2014-01-01T00:00:00+00:00')
        self.assertEqual(dm('2016-01-01 14:00:00||/w').format('YYYY-MM-DDTHH:mm:ssZZ'), '2015-12-28T00:00:00+00:00')
        self.assertEqual(dm('2014-11||/M').format('YYYY-MM-DDTHH:mm:ssZZ'), '2014-11-01T00:00:00+00:00')
        self.assertEqual(dm('2016-01-02||/M+1h+1m').format(iso8601), '2016-01-01T01:01:00+00:00')
        self.assertEqual(dm('2016-01-02||/d+1h').format(iso8601), '2016-01-02T01:00:00+00:00')
        self.assertEqual(dm('2016-01-02T14:02:00||/h').format(iso8601), '2016-01-02T14:00:00+00:00')
        self.assertEqual(dm('2016-01-02T14:02:00||/H').format(iso8601), '2016-01-02T14:00:00+00:00')
    
        # Rounding Up Tests
        self.assertEqual(dm('2016-01-01||/d', roundDown=False).format('YYYY-MM-DDTHH:mm:ssZZ'), '2016-01-01T23:59:59+00:00')
        self.assertEqual(dm('2014-11-18||/y', roundDown=False).format('YYYY-MM-DDTHH:mm:ssZZ'), '2014-12-31T23:59:59+00:00')
    
        # Timezone Tests
>       self.assertEqual(dm('now', tz='US/Pacific').format(iso8601), arrow.utcnow().to('US/Pacific').format(iso8601))
E       AssertionError: '2022-03-31T14:19:12-07:00' != '2022-03-31T14:19:13-07:00'
E       - 2022-03-31T14:19:12-07:00
E       ?                   ^
E       + 2022-03-31T14:19:13-07:00
E       ?                   ^

tests.py:42: AssertionError

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions