Skip to content

Instantly share code, notes, and snippets.

@patrickyoung
Created January 25, 2020 14:16
Show Gist options
  • Save patrickyoung/9693036d7cf47b09be1c671860a078be to your computer and use it in GitHub Desktop.
Save patrickyoung/9693036d7cf47b09be1c671860a078be to your computer and use it in GitHub Desktop.
Fake Views
from mimesis.schema import Field, Schema
import json
def generate(schema_definition, iterations=1, seed=None, language='en'):
"""
>>> user = { 'id': 'uuid','name': 'person.full_name' }
# Should return a single user account record as a list
>>> user_data = generate(user, seed='TEST_DATA')
>>> print(user_data)
[{"id": "c18f49b5-38e5-7e42-6d97-7ba818bb8585", "name": "Robena Dawson"}]
# Should return a 3 user account records as a list
>>> user_data = generate(user, seed='TEST_DATA', iterations=3)
>>> print(user_data) #doctest: +NORMALIZE_WHITESPACE
[{"id": "c18f49b5-38e5-7e42-6d97-7ba818bb8585", "name": "Robena Dawson"},
{"id": "fdac87eb-e7f8-ab57-da54-000115eed230", "name": "Elois Vasquez"},
{"id": "e6203b3b-2658-fb46-b336-37b48edbcd02", "name": "Marshall Mills"}]
# Should return account record in Japanese language
>>> user_data = generate(user, seed='TEST_DATA', language='ja')
>>> print(user_data)
[{"id": "c18f49b5-38e5-7e42-6d97-7ba818bb8585", "name": "\u821e \u5fd7\u8cc0"}]
"""
_ = Field(language, seed=seed)
fake_data = Schema(
lambda: {key:_(value) for (key,value) in schema_definition.items()}
)
return json.dumps(fake_data.create(iterations=iterations))
if __name__ == "__main__":
import doctest
doctest.testmod()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment