123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import os
- import shutil
- from pathlib import Path
- from unittest.mock import MagicMock, mock_open, patch
- import pytest
- from _pytest.monkeypatch import MonkeyPatch
- from tests.unit_tests.oss.__mock.base import (
- get_example_data,
- get_example_filename,
- get_example_filepath,
- get_example_folder,
- )
- class MockLocalFSClass:
- def write_bytes(self, data):
- assert data == get_example_data()
- def read_bytes(self):
- return get_example_data()
- @staticmethod
- def copyfile(src, dst):
- assert src == os.path.join(get_example_folder(), get_example_filename())
- assert dst == get_example_filepath()
- @staticmethod
- def exists(path):
- assert path == os.path.join(get_example_folder(), get_example_filename())
- return True
- @staticmethod
- def remove(path):
- assert path == os.path.join(get_example_folder(), get_example_filename())
- MOCK = os.getenv("MOCK_SWITCH", "false").lower() == "true"
- @pytest.fixture
- def setup_local_fs_mock(monkeypatch: MonkeyPatch):
- if MOCK:
- monkeypatch.setattr(Path, "write_bytes", MockLocalFSClass.write_bytes)
- monkeypatch.setattr(Path, "read_bytes", MockLocalFSClass.read_bytes)
- monkeypatch.setattr(shutil, "copyfile", MockLocalFSClass.copyfile)
- monkeypatch.setattr(os.path, "exists", MockLocalFSClass.exists)
- monkeypatch.setattr(os, "remove", MockLocalFSClass.remove)
- os.makedirs = MagicMock()
- with patch("builtins.open", mock_open(read_data=get_example_data())):
- yield
- if MOCK:
- monkeypatch.undo()
|