Python
Faker

Pythonでtest用のdummy dataを作成する

Faker

dummy data作成用のpython package.
pythonのmoduleとしても利用できるが、CLIからのdataの作成も可能。
以下でinstallできる。

pip install faker

Usage

from faker import Faker
# faker object
fake = Factory.create()
# set seed
fake.seed(4321)
# get dummy data
fake.name()
fake.address()
fake.text()

呼び出しごとにrandomにdataが出力される。
seedを固定したい場合は、fake.seed()で設定する。
dummy dataを生成するname, addressはproviderによって提供される。
自分でproviderを追加することもできる。

Providerの追加。

自分でproviderを作成する場合は以下のようにする。

# first, import a similar Provider or use the default one
from faker.providers import BaseProvider

# create new provider class
class MyProvider(BaseProvider):
    def foo(self):
        return 'bar'

# then add new provider to faker instance
fake.add_provider(MyProvider)

# now you can use:
fake.foo()

言語の変更

defaultは、英語。日本語などのdataもある。

from faker import Factory
fake = Factory.create('jp_JP')

List of providers

defaultで利用可能なProviderの一覧は以下にある。

List of dummy data

全て網羅していないが、どういうデータが使えるか
以下を実行すればデータが表示される。

from faker import Factory
fake = Factory.create()

print("")
print("lorem")
print(fake.word())
print(fake.words())
print(fake.sentence())
print(fake.sentences())
print(fake.paragraph())
print(fake.paragraphs())
print(fake.text())

print("")
print("user_agent")
print(fake.user_agent())
print(fake.chrome())
print(fake.firefox())
print(fake.safari())
print(fake.opera())
print(fake.internet_explorer())
print(fake.windows_platform_token())
print(fake.linux_platform_token())
print(fake.mac_platform_token())

print("")
print("misc")
print(fake.boolean())
print(fake.null_boolean())
print(fake.binary(length=50))
print(fake.md5())
print(fake.sha1())
print(fake.sha256())
print(fake.locale())
print(fake.language_code())
print(fake.uuid4())
print(fake.password())

with pytest

pytestと一緒に使う場合は、pytestのfixtureとして提供されているpytest-fixtureを使う。

pip install pytest-faker

fakerという名前の引数をtest用の関数に指定しておけばfake moduleとして使える。

def test_faker(faker):
    assert faker.name() != faker.address()

Reference