astropy / extension-helpers

Helpers to assist with building Python packages with compiled C/Cython extensions
https://extension-helpers.readthedocs.io
BSD 3-Clause "New" or "Revised" License
16 stars 12 forks source link

test_write_if_different is prone to race conditions #43

Open mweinelt opened 2 years ago

mweinelt commented 2 years ago

Hi, we're seeing the following error on our build hosts with extension-helpers 1.0.0.

    def test_write_if_different(tmpdir):
        filename = str(tmpdir / 'test.txt')
        write_if_different(filename, b'abc')
        time1 = os.path.getmtime(filename)
        time.sleep(0.01)
        write_if_different(filename, b'abc')
        time2 = os.path.getmtime(filename)
        assert time2 == time1
        time.sleep(0.01)
        write_if_different(filename, b'abcd')
        time3 = os.path.getmtime(filename)
>       assert time3 > time1
E       assert 1650038922.0 > 1650038922.0

The mtime resolution depends on the filesystem implementation, so ideally you would choose a higher timeout.