Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # to generate fixtures
- # run from app root: docker exec -it kdata_web_1 python utils/generate_fixtures.py
- # Set the path
- import os, sys
- sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
- from datetime import datetime
- from faker import Factory
- import csv
- from random import randrange
- from application import create_app, db
- from customer.models import Customer
- app_factory = create_app()
- fake = Factory.create()
- with app_factory.app_context():
- with open('customer/fixtures/customers.csv', 'w+') as csvfile:
- fieldnames = ['first_name', 'last_name', 'email', 'ntf_datetime']
- writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
- writer.writeheader()
- # create 50 customers for the month of january
- create_customers(writer, 50, 2017, 1)
- with open('order/fixtures/orders.csv', 'w+') as csvfile:
- fieldnames = ['customer_id', 'amount', 'datetime']
- writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
- writer.writeheader()
- # create 80 orders for the month of january
- create_orders(writer, 80, 50, 2017, 1)
- def create_customers(writer, number, year, month):
- for i in range(1, number):
- first_name = fake.first_name()
- last_name = fake.last_name()
- email = fake.email()
- ntf_datetime = fake.date_time_between_dates(
- datetime_start=datetime(year,month,1),
- datetime_end=datetime(year,month,31)
- )
- writer.writerow(
- {
- 'first_name': first_name,
- 'last_name': last_name,
- 'email': email,
- 'ntf_datetime': ntf_datetime}
- )
- def create_orders(writer, number, customer_range, year, month):
- for i in range(1, number):
- customer_id = randrange(1, customer_range)
- amount = fake.pydecimal(
- left_digits=3,
- right_digits=2,
- positive=True
- )
- order_datetime = fake.date_time_between_dates(
- datetime_start=datetime(year,month,1),
- datetime_end=datetime(year,month,31)
- )
- writer.writerow(
- {
- 'customer_id': customer_id,
- 'amount': amount,
- 'datetime': order_datetime}
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement