mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
25b5d98030
* support postponed annotations in python 3.7 * support for full ForwardRef * tweak update_forward_refs * better ForwardRef resolution * remove debug, fix linting * fix comments * docs and history
39 lines
695 B
Python
39 lines
695 B
Python
import os
|
|
import secrets
|
|
from importlib.machinery import SourceFileLoader
|
|
|
|
import pytest
|
|
|
|
|
|
class SetEnv:
|
|
def __init__(self):
|
|
self.envars = set()
|
|
|
|
def set(self, name, value):
|
|
self.envars.add(name)
|
|
os.environ[name] = value
|
|
|
|
def clear(self):
|
|
for n in self.envars:
|
|
os.environ.pop(n)
|
|
|
|
|
|
@pytest.yield_fixture
|
|
def env():
|
|
setenv = SetEnv()
|
|
|
|
yield setenv
|
|
|
|
setenv.clear()
|
|
|
|
|
|
@pytest.fixture
|
|
def create_module(tmp_path):
|
|
def run(code):
|
|
name = f'test_code_{secrets.token_hex(5)}'
|
|
path = tmp_path / f'{name}.py'
|
|
path.write_text(code)
|
|
return SourceFileLoader(name, str(path)).load_module()
|
|
|
|
return run
|