def test_write_pyc(self, testdir, tmpdir, monkeypatch):
        from _pytest.assertion.rewrite import _write_pyc
        from _pytest.assertion import AssertionState

        config = testdir.parseconfig([])
        state = AssertionState(config, "rewrite")
        source_path = str(tmpdir.ensure("source.py"))
        pycpath = tmpdir.join("pyc").strpath
        assert _write_pyc(state, [1], os.stat(source_path), pycpath)

        if sys.platform == "win32":
            from contextlib import contextmanager

            @contextmanager
            def atomic_write_failed(fn, mode="r", overwrite=False):
                e = OSError()
                e.errno = 10
                raise e
                yield

            monkeypatch.setattr(_pytest.assertion.rewrite, "atomic_write",
                                atomic_write_failed)
        else:

            def raise_oserror(*args):
                raise OSError()

            monkeypatch.setattr("os.rename", raise_oserror)

        assert not _write_pyc(state, [1], os.stat(source_path), pycpath)
Beispiel #2
0
 def test_write_pyc(self, testdir, tmpdir, monkeypatch):
     from _pytest.assertion.rewrite import _write_pyc
     from _pytest.assertion import AssertionState
     try:
         import __builtin__ as b
     except ImportError:
         import builtins as b
     config = testdir.parseconfig([])
     state = AssertionState(config, "rewrite")
     source_path = tmpdir.ensure("source.py")
     pycpath = tmpdir.join("pyc").strpath
     assert _write_pyc(state, [1], source_path.stat(), pycpath)
     def open(*args):
         e = IOError()
         e.errno = 10
         raise e
     monkeypatch.setattr(b, "open", open)
     assert not _write_pyc(state, [1], source_path.stat(), pycpath)
Beispiel #3
0
    def test_write_pyc(self, testdir, tmpdir, monkeypatch):
        from _pytest.assertion.rewrite import _write_pyc
        from _pytest.assertion import AssertionState
        import atomicwrites
        from contextlib import contextmanager
        config = testdir.parseconfig([])
        state = AssertionState(config, "rewrite")
        source_path = tmpdir.ensure("source.py")
        pycpath = tmpdir.join("pyc").strpath
        assert _write_pyc(state, [1], source_path.stat(), pycpath)

        @contextmanager
        def atomic_write_failed(fn, mode='r', overwrite=False):
            e = IOError()
            e.errno = 10
            raise e
            yield  # noqa

        monkeypatch.setattr(atomicwrites, "atomic_write", atomic_write_failed)
        assert not _write_pyc(state, [1], source_path.stat(), pycpath)