feat: 新增技能扩展N13一章相关示例源码

This commit is contained in:
100gle
2023-02-07 11:31:59 +08:00
parent 924966e89e
commit 55f588cf93
3 changed files with 798 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
import pytest
from faker import Faker
from faker.providers import BaseProvider
@pytest.fixture(scope="session", autouse=True)
def faker_session_locale():
return "zh-CN"
class MyProvider(BaseProvider):
def custom_locales(self):
choices = ["zh-CN", "en-US", "ja-JP", "ko-KR"]
return self.random_element(choices)
def custom_programming_languages(self):
langs = ["Python", "Java", "Golang", "JavaScript", "Swift"]
return self.random_element(langs)
def custom_numbers(self, n: int = 10):
if n < 0:
raise ValueError("n must be greater than or equal to 0.")
return self.random_element(list(range(n)))
@pytest.fixture()
def faker(request):
if "faker_locale" in request.fixturenames:
locale = request.getfixturevalue("faker_locale")
fake = Faker(locale=locale)
else:
fake = request.getfixturevalue("_session_faker")
seed = 0
if "faker_seed" in request.fixturenames:
seed = request.getfixturevalue("faker_seed")
fake.seed_instance(seed=seed)
fake.unique.clear()
fake.add_provider(MyProvider)
return fake

View File

@@ -0,0 +1,29 @@
import pytest
def test_faker_fixture(faker):
assert faker.unique.boolean()
def test_faker_chinese_name(faker):
import re
name = faker.name()
print(f"name is: {name}")
assert re.match(r"[\u4e00-\u9eff]", name)
def test_faker_custom_locale(faker):
el = faker.custom_locales()
assert el in ["zh-CN", "en-US", "ja-JP", "ko-KR"]
def test_faker_custom_programming_language(faker):
el = faker.custom_programming_languages()
assert el in ["Python", "Java", "Golang", "JavaScript", "Swift"]
@pytest.mark.parametrize("n", argvalues=[1, 10, 100])
def test_faker_custom_numbers(faker, n):
el = faker.custom_numbers(n=n)
assert el in list(range(n))