def handle(self, *args, **options): faker = Faker() # clear all users User.objects.all().delete() Profile.objects.all().delete() # Insert new data profile = Profile.objects.create(department=UserDepartment.HR.value, secure_code=faker.ssn(), status=UserStatuses.User) User.objects.create(first_name=faker.first_name(), last_name=faker.last_name(), email=faker.ascii_safe_email(), profile=profile) profile = Profile.objects.create(department=UserDepartment.IT.value, secure_code=faker.ssn(), status=UserStatuses.Developer) User.objects.create(first_name=faker.first_name(), last_name=faker.last_name(), email=faker.ascii_safe_email(), profile=profile) profile = Profile.objects.create(department=UserDepartment.CEO.value, secure_code=faker.ssn(), status=UserStatuses.Developer) User.objects.create(first_name=faker.first_name(), last_name=faker.last_name(), email=faker.ascii_safe_email(), profile=profile) profile = Profile.objects.create(department=UserDepartment.IT.value, secure_code=faker.ssn(), status=UserStatuses.Admin) User.objects.create(first_name=faker.first_name(), last_name=faker.last_name(), email=faker.ascii_safe_email(), profile=profile) profile = Profile.objects.create(department=UserDepartment.CEO.value, secure_code=faker.ssn(), status=UserStatuses.Admin) User.objects.create(first_name=faker.first_name(), last_name=faker.last_name(), email=faker.ascii_safe_email(), profile=profile) # result count = User.objects.all().count() print(f'Success! Inserted records: {count}')
class TestPtBR(unittest.TestCase): def setUp(self): self.factory = Faker('pt_BR') self.provider = self.factory.provider('faker.providers.internet') @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'VitóriaMagalhães', ) def test_ascii_safe_email(self): email = self.factory.ascii_safe_email() validate_email(email, check_deliverability=False) assert email.split('@')[0] == 'vitoriamagalhaes' @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'JoãoSimões', ) def test_ascii_free_email(self): email = self.factory.ascii_free_email() validate_email(email, check_deliverability=False) assert email.split('@')[0] == 'joaosimoes' @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'AndréCauã', ) def test_ascii_company_email(self): email = self.factory.ascii_company_email() validate_email(email, check_deliverability=False) assert email.split('@')[0] == 'andrecaua'
class CustomUserCreationFormTestcase(BaseAPITestCase): def setUp(self): super().setUp() self.faker = Faker() def test_valid_submission(self): """Test if the form is filled correctly """ form = CustomUserCreationForm(data={ 'username': self.faker.user_name(), 'first_name': self.faker.first_name(), 'last_name': self.faker.last_name(), 'email': self.faker.ascii_safe_email(), 'password1': 'testpassword', 'password2': 'testpassword', }) self.assertTrue(form.is_valid()) def test_required_fields(self): """Test if the form throws an error by requiring username and email fields. """ form = CustomUserCreationForm(data={ 'first_name': self.faker.first_name(), 'last_name': self.faker.last_name(), }) self.assertFalse(form.is_valid())
def gen_persons_xml(count: int): fake = Faker() persons = open("persons.xml", "w") persons.write("""<?xml version="1.0"?> <persons>""") sstr = """ <person> <id>{0}</id> <name>{1}</name> <phone>{2}</phone> <email>{3}</email> <birthdate>{4}</birthdate> <height>{5}</height> <weight>{6}</weight> <company>{7}</company> </person>""" nstr = "" for i in range(0, count): nstr = sstr.format(i, fake.name(), fake.phone_number(), fake.ascii_safe_email(), fake.date_of_birth(), fake.random_int(), fake.random_int(), fake.company()) persons.write(nstr) persons.write(""" </persons>""") persons.close()
class TestNlNl(unittest.TestCase): def setUp(self): self.factory = Faker('nl_NL') self.provider = self.factory.provider('faker.providers.internet') @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'fabiënné', ) def test_ascii_safe_email(self): email = self.factory.ascii_safe_email() validate_email(email) assert email.split('@')[0] == 'fabienne' @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'fabiënné', ) def test_ascii_free_email(self): email = self.factory.ascii_free_email() validate_email(email) assert email.split('@')[0] == 'fabienne' @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'fabiënné', ) def test_ascii_company_email(self): email = self.factory.ascii_company_email() validate_email(email) assert email.split('@')[0] == 'fabienne'
class TestArAa(unittest.TestCase): def setUp(self): self.factory = Faker('ar_AA') self.provider = self.factory.provider('faker.providers.internet') @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'اصيل', ) def test_ascii_safe_email(self): email = self.factory.ascii_safe_email() validate_email(email, check_deliverability=False) assert email.split('@')[0] == 'asyl' @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'اصيل', ) def test_ascii_free_email(self): email = self.factory.ascii_free_email() validate_email(email, check_deliverability=False) assert email.split('@')[0] == 'asyl' @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'اصيل', ) def test_ascii_company_email(self): email = self.factory.ascii_company_email() validate_email(email, check_deliverability=False) assert email.split('@')[0] == 'asyl'
class TestArAa(unittest.TestCase): def setUp(self): self.factory = Faker('ar_AA') self.provider = self.factory.provider('faker.providers.internet') @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'اصيل', ) def test_ascii_safe_email(self): email = self.factory.ascii_safe_email() validate_email(email) assert email.split('@')[0] == 'asyl' @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'اصيل', ) def test_ascii_free_email(self): email = self.factory.ascii_free_email() validate_email(email) assert email.split('@')[0] == 'asyl' @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'اصيل', ) def test_ascii_company_email(self): email = self.factory.ascii_company_email() validate_email(email) assert email.split('@')[0] == 'asyl'
class TestNlNl(unittest.TestCase): def setUp(self): self.factory = Faker('nl_NL') self.provider = self.factory.provider('faker.providers.internet') @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'fabiënné' ) def test_ascii_safe_email(self): email = self.factory.ascii_safe_email() validate_email(email, check_deliverability=False) self.assertEqual(email.split('@')[0], 'fabienne') @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'fabiënné' ) def test_ascii_free_email(self): email = self.factory.ascii_free_email() validate_email(email, check_deliverability=False) self.assertEqual(email.split('@')[0], 'fabienne') @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'fabiënné' ) def test_ascii_company_email(self): email = self.factory.ascii_company_email() validate_email(email, check_deliverability=False) self.assertEqual(email.split('@')[0], 'fabienne')
def generate_fake_data(fake: Faker, value_type: str): switch = { "name": fake.name(), "username": fake.user_name(), "address": fake.address(), "creditcard": fake.credit_card_number(), "company": fake.company(), "phone": fake.phone_number(), "email": fake.ascii_safe_email(), "vehicle_license": fake.license_plate(), "iban": fake.iban(), "color": fake.color_name(), "string": fake.text(), "integer": str(fake.random_int(max=99999)), "numeric": str(fake.pyfloat()), "date": fake.date(), "time": fake.time(), "timestamp": fake.iso8601(), "binary": str(fake.binary(length=64)), "bool": str(fake.boolean()), "uuid": fake.uuid4(), "inet": fake.ipv4(), "macaddr": fake.mac_address() } return switch.get(value_type)
def gen_persons_json(count: int): fake = Faker() persons = open("persons.json", "w") persons.write("""{ "persons": [""") sstr = """ {{ "birthdate": "{0}", "company": "{1}", "email": "{2}", "height": {3}, "id": {4}, "name": "{5}", "phone": "{6}", "weight": {7} }},""" nstr = "" for i in range(0, count): persons.write(nstr) nstr = sstr.format(fake.date_of_birth(), fake.company(), fake.ascii_safe_email(), fake.random_int(), i, fake.name(), fake.phone_number(), fake.random_int()) nstr = nstr.rstrip(",") persons.write(nstr) persons.write(""" ] } """) persons.close()
class TestPtBR(unittest.TestCase): def setUp(self): self.factory = Faker('pt_BR') self.provider = self.factory.provider('faker.providers.internet') @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'VitóriaMagalhães', ) def test_ascii_safe_email(self): email = self.factory.ascii_safe_email() validate_email(email) assert email.split('@')[0] == 'vitoriamagalhaes' @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'JoãoSimões', ) def test_ascii_free_email(self): email = self.factory.ascii_free_email() validate_email(email) assert email.split('@')[0] == 'joaosimoes' @mock.patch( 'faker.providers.internet.Provider.user_name', lambda x: 'AndréCauã', ) def test_ascii_company_email(self): email = self.factory.ascii_company_email() validate_email(email) assert email.split('@')[0] == 'andrecaua'
def setUp(self): faker = Faker() profile = Profile.objects.create(department=UserDepartment.HR.value, secure_code=faker.ssn(), status=UserStatuses.User) User.objects.create(first_name=faker.first_name(), last_name=faker.last_name(), email=faker.ascii_safe_email(), profile=profile) profile = Profile.objects.create(department=UserDepartment.IT.value, secure_code=faker.ssn(), status=UserStatuses.Developer) User.objects.create(first_name=faker.first_name(), last_name=faker.last_name(), email=faker.ascii_safe_email(), profile=profile) profile = Profile.objects.create(department=UserDepartment.CEO.value, secure_code=faker.ssn(), status=UserStatuses.Developer) User.objects.create(first_name=faker.first_name(), last_name=faker.last_name(), email=faker.ascii_safe_email(), profile=profile) profile = Profile.objects.create(department=UserDepartment.IT.value, secure_code=faker.ssn(), status=UserStatuses.Admin) User.objects.create(first_name=faker.first_name(), last_name=faker.last_name(), email=faker.ascii_safe_email(), profile=profile) profile = Profile.objects.create(department=UserDepartment.CEO.value, secure_code=faker.ssn(), status=UserStatuses.Admin) User.objects.create(first_name=faker.first_name(), last_name=faker.last_name(), email=faker.ascii_safe_email(), profile=profile)
class TestData: def __init__(self): self.fake = Faker("en-GB") def get_dataset_name(self): return self.fake.company() def get_licence_text(self): return "Open Data" def get_licence_url(self): return self.fake.uri() def get_personal_data_text(self): return "Does not contain personal data" def get_no_restrictions_on_usage_text(self): return "No restrictions on usage" def get_restrictions_on_usage_text(self): return "Entered text must be either OFFICIAL or OFFICIAL-SENSITIVE." def get_is_draft(self): return bool(random.randint(0, 1)) def get_no_retention_policy_text(self): return "No retention policy" def get_new_user(self): model = get_user_model() email = self.fake.ascii_safe_email() user = model.objects.create( username=email, is_staff=False, is_superuser=False, email=email, first_name=self.fake.first_name(), last_name=self.fake.last_name(), ) return user def get_user(self): model = get_user_model() user = model.objects.all() if user.count(): return user[0] return None
def gen_persons_csv(count: int): fake = Faker() persons = open("persons.csv", "w") persons.write( """PersonId,Name,Phone,Email,Birthdate,Height,Weight,Company""") sstr = """ {0},{1},{2},{3},{4},{5},{6},{7}""" nstr = "" for i in range(0, count): nstr = sstr.format(i, fake.name(), fake.phone_number(), fake.ascii_safe_email(), fake.date_of_birth(), fake.random_int(), fake.random_int(), fake.company()) persons.write(nstr) persons.close()
def faker_gen(table_name, field_names, field_types, num_rows): field_names_parsed = [str(item) for item in field_names.split(',')] field_types_parsed = [str(item) for item in field_types.split(',')] assert (len(field_names_parsed) == len(field_types_parsed)) logging.basicConfig(level=logging.INFO) file_name = "raw_data/data_" + table_name + ".csv" logging.info('Generating file {} ...'.format(file_name)) with open(file_name, 'w') as f: fake = Faker(['es_ES']) i = 1 date = datetime.date(2020, 8, 1) for _ in range(num_rows): for field_name, field_type in zip(field_names_parsed, field_types_parsed): if field_type == 'ID': fake_data = i i = i + 1 elif field_type == 'NAME': fake_data = fake.name().replace(',', '') elif field_type == 'DATE_SEQUENTIAL': fake_data = date date += datetime.timedelta(days=1) elif field_type == 'DATE': fake_data = fake.date_this_year() elif field_type == 'CITY': fake_data = fake.city() elif field_type == 'EMPTY': fake_data = "" elif field_type == 'EMAIL': fake_data = fake.ascii_safe_email() elif field_type == 'COMPANY': fake_data = fake.company().replace(',', '') elif field_type == 'PRICE': fake_data = fake.numerify(text='##€') elif field_type == 'WORD': fake_data = fake.word() elif field_type == 'RANGE': range_value = int(field_name) fake_data = random.randint(1, range_value) else: fake_data = "OOV" f.write(str(fake_data)) if (not field_names_parsed.index(field_name) + 1 == len(field_names_parsed)): f.write(",") f.write("\n")
def setUp(self): fake = Faker() self.dummy_data1 = { 'name': 'fake_dog', 'type': 'DOG', 'birthday': '2019-12-18' } self.dummy_data2 = { 'name': 'fake_cat', 'type': 'CAT', 'birthday': '2019-12-18' } self.client = APIClient() self.fake_user = User.objects.create(email=fake.ascii_safe_email(), username=fake.user_name(), password=fake.password()) self.client.force_login(self.fake_user)
def populate(N=1, M=1): generator = Faker() STATUS = (('Applied', 'Applied'), ('Online Assessment 1', 'Online Assessment 1'), ('Online Assessment 2', 'Online Assessment 2'), ('Online Assessment 3', 'Online Assessment 3'), ('Phone Interview 1', 'Phone Interview 1'), ('Phone Interview 1', 'Phone Interview 1'), ('Video Interview 1', 'Video Interview 1'), ('Video Interview 2', 'Video Interview 2'), ('Onsite Interview', 'Onsite Interview'), ('Offer', 'Offer'), ('Rejection', 'Rejection'), ('Accepted Offer', 'Accepted Offer'), ('Declined Offer', 'Declined Offer')) for i in range(N): fakeName = generator.user_name() fakeEmail = generator.ascii_safe_email() fakePass = generator.password() newUser = User.objects.get_or_create(username=fakeName, email=fakeEmail, password=fakePass)[0] newUser.save() for i in range(M): fakeJob = generator.bs() fakeStatus = STATUS[random.randint(0, 12)][0] fakeDate = generator.date_this_century() newJob = Job.objects.get_or_create(user=newUser, name=fakeJob, status=fakeStatus, date_applied=fakeDate)[0] newJob.save()
NUM_USERS = 5000 #number of users faker = Faker() HOST=['list of private ips for cassandra cluster'] KEYSPACE='combined_dist' WEBSITE='https://fakenews.com/' # Connect to Cassandra and prepare queries for later execution session = cassandra_client.start_connection(HOST, KEYSPACE) prep_top_query = cassandra_client.prepare_top_query(session) prep_combined_query = cassandra_client.prepare_combined_query(session) # Create list of emails - uses same seed at producer to get same emails EMAILS = [] for i in range(NUM_USERS): faker.seed(i + 9092) # seed to ensure consistent emails EMAILS.append(faker.ascii_safe_email()) # CSS stylesheet included by Dash external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css'] app = dash.Dash(__name__) # defining dash app server = flask.Flask(__name__) # starting flask server # defining cache - used to speed up performance of cassandra queries cache = Cache(app.server, config={ 'CACHE_TYPE': 'filesystem', 'CACHE_DIR': 'cache-directory' }) TIMEOUT = 55 # 55 seconds since top_articles is updated every 60 seconds
print("providers.geo".center(100,"=")) print(fake.coordinate()) print(fake.latitude()) print(fake.latlng()) print(fake.local_latlng()) print(fake.location_on_land()) print(fake.longitude()) print("providers.internet".center(100,"=")) print(fake.ascii_company_email()) print(fake.ascii_email()) print(fake.ascii_free_email()) print(fake.ascii_safe_email()) print(fake.company_email()) print(fake.dga()) print(fake.domain_name()) print(fake.domain_word()) print(fake.email()) print(fake.free_email()) print(fake.free_email_domain()) print(fake.hostname()) print(fake.http_method()) print(fake.image_url()) print(fake.ipv4()) print(fake.ipv4_network_class()) print(fake.ipv4_private()) print(fake.ipv4_public()) print(fake.ipv6())
class Anonymizer(object): def __init__(self, logger): self.us_faker = Faker() self.faker = Faker('fr_FR') self.logger = logger self.session = DBSESSION() def _zipcode(self): if hasattr(self.faker, 'zipcode'): return self.faker.zipcode() else: return self.faker.postcode() def _an_activity(self): from autonomie.models.activity import Activity, ActivityType for activity in self.session.query(Activity): for fieldname in ('point', 'objectifs', 'action', 'documents', 'notes'): setattr(activity, fieldname, self.faker.text()) type_labels = ( u"RV conseil", u"RV suivi", u"RV Gestion", u"RV Admin", u"RV RH", u"RV Compta", u"RV hebdo", u"RV Mensuel", ) for index, typ in enumerate(self.session.query(ActivityType).all()): typ.label = type_labels[index % 7] def _an_commercial(self): from autonomie.models.commercial import TurnoverProjection for t in self.session.query(TurnoverProjection): t.comment = self.faker.text() def _an_company(self): from autonomie.models.company import Company for comp in self.session.query(Company): comp.name = self.faker.company() comp.goal = self.faker.bs() comp.comments = self.faker.catch_phrase() comp.phone = self.faker.phone_number() comp.mobile = self.faker.phone_number() comp.email = self.faker.ascii_safe_email() header = build_header(u"{0}\n {1} - {2}".format( comp.name, comp.phone, comp.email)) comp.header = {'name': 'header.png', 'data': header} self.session.execute(u"update company set cgv=''") def _an_competence(self): from autonomie.models.competence import ( CompetenceGridItem, CompetenceGridSubItem, ) for item in self.session.query(CompetenceGridItem): item.progress = self.faker.text() for item in self.session.query(CompetenceGridSubItem): item.comments = self.faker.text() def _an_config(self): from autonomie.models.config import Config, ConfigFiles Config.set('cae_admin_mail', self.faker.ascii_safe_email()) Config.set('welcome', self.faker.sentence(nb_words=15)) ConfigFiles.set( 'logo.png', { 'data': pkg_resources.resource_stream('autonomie', 'static/img/autonomie.jpg'), 'filename': 'logo.jpg', }) Config.set('coop_cgv', self.faker.paragraph(nb_sentences=40)) Config.set( 'coop_pdffootertitle', u"""Une activité de ma CAE SARL SCOP à \ capital variable""") Config.set( 'coop_pdffootercourse', u"""Organisme de formation N° de déclaration \ d'activité au titre de la FPC : xx xx xxxxx. MA CAE est exonérée de TVA pour \ les activités s'inscrivant dans le cadre de la formation professionnelle \ conformément à l'art. L920-4 du Code du travail et de l'art. 202 C de \ l'annexe II du code général des impôts""") footer = u"""RCS XXXX 000 000 000 00000 - SIRET 000 \ 000 000 000 00 - Code naf 0000Z TVA INTRACOM : FR0000000. Siège social : 10 \ rue vieille 23200 Aubusson""" Config.set('coop_pdffootercontent', footer) Config.set('coop_pdffootertext', footer) Config.set( 'coop_invoicepayment', u"""Par chèque libellé à l'ordre de : \ MA CAE/ %ENTREPRENEUR% à envoyer à l'adresse suivante : MA CAE/ %ENTREPRENEUR% 10 rue Vieille 23200 Aubusson Ou par virement sur le compte de MA CAE/ %ENTREPRENEUR% MA BANQUE RIB : xxxxx xxxx xxxxxxxxxxxxx IBAN : xxxx xxxx xxxx xxxx xxxx xxxx xxx BIC : MABAFRMACAXX Merci d'indiquer le numéro de facture sur le libellé de votre virement ou \ dos de votre chèque. """) Config.set( "coop_invoicelate", u"""Tout retard de paiement entraînera à titre de \ clause pénale, conformément à la loi 92.1442 du 31 décembre 1992, une \ pénalité égale à un taux d'intérêt équivalent à une fois et demi le taux \ d'intérêt légal en vigueur à cette échéance. Une indemnité de 40 euros forfaitaire sera demandée en sus pour chaque \ facture payée après l’échéance fixée. Celle-ci n’est pas soumise à TVA.""") Config.set("activity_footer", footer) Config.set('workshop_footer', footer) def _an_customer(self): from autonomie.models.customer import Customer for cust in self.session.query(Customer): cust.name = self.faker.company() cust.address = self.faker.street_address() cust.zipcode = self._zipcode() cust.city = self.faker.city() cust.lastname = self.faker.last_name() cust.firstname = self.faker.first_name() cust.email = self.faker.ascii_safe_email() cust.phone = self.faker.phone_number() cust.fax = self.faker.phone_number() cust.tva_intracomm = "" cust.comments = self.faker.bs() def _an_expense(self): from autonomie.models.expense.sheet import ( BaseExpenseLine, ExpenseKmLine, Communication, ) for line in self.session.query(BaseExpenseLine): line.description = self.faker.text() for line in self.session.query(ExpenseKmLine): line.start = self.faker.city() line.end = self.faker.city() for com in self.session.query(Communication): com.content = self.faker.text() def _an_node(self): from autonomie.models.node import Node for node in self.session.query(Node): node.name = self.faker.sentence(nb_words=4, variable_nb_words=True) def _an_payment(self): from autonomie.models.payments import BankAccount for b in self.session.query(BankAccount): b.label = u"Banque : {0}".format(self.faker.company()) def _an_project(self): from autonomie.models.project import Project, Phase for p in self.session.query(Project): p.name = self.faker.sentence(nb_words=5) p.definition = self.faker.text() for p in self.session.query(Phase): if p.name != u"Phase par défaut": p.name = self.faker.sentence(nb_words=3) def _an_sale_product(self): from autonomie.models.sale_product import ( SaleProductCategory, SaleProduct, SaleProductGroup, ) for cat in self.session.query(SaleProductCategory): cat.title = self.faker.sentence(nb_words=3) cat.description = self.faker.text() for prod in self.session.query(SaleProduct): prod.label = self.faker.sentence(nb_words=2) prod.description = self.faker.text() for group in self.session.query(SaleProductGroup): group.title = self.faker.sentence(nb_words=2) group.description = self.faker.text() def _an_statistic(self): from autonomie.models.statistics import (StatisticSheet) for s in self.session.query(StatisticSheet): s.title = self.faker.sentence(nb_words=4) def _an_task(self): from autonomie.models.task import ( Task, DiscountLine, TaskLine, TaskLineGroup, Estimation, TaskStatus, ) for task in self.session.query(Task): if task.status_comment: task.status_comment = self.faker.text() task.description = self.faker.text() task.address = task.customer.full_address task.workplace = self.faker.address() task.payment_conditions = u"Par chèque ou virement à réception de " u"facture" for line in self.session.query(DiscountLine): line.description = self.faker.text() for line in self.session.query(TaskLine): line.description = self.faker.text() for group in self.session.query(TaskLineGroup): if group.title: group.title = self.faker.sentence(nb_words=4) if group.description: group.description = self.faker.text() for status in self.session.query(TaskStatus): status.status_comment = self.faker.sentence(nb_words=6) for estimation in self.session.query(Estimation): if estimation.exclusions: estimation.exclusions = self.faker.text() def _an_task_config(self): from autonomie.models.task import ( PaymentConditions, ) for i in self.session.query(PaymentConditions): self.session.delete(i) for index, label in enumerate( [u"30 jours fin de mois", u"À réception de facture"]): condition = PaymentConditions(label=label) if index == 0: condition.default = True self.session.add(condition) def _an_user(self): from autonomie.models.user.login import ( Login, ) from autonomie.models.user.user import ( User, ) self.session.execute("Update accounts set session_datas='{}'") counter = itertools.count() found_contractor = False for u in self.session.query(Login).join(User).filter( Login.active == True): index = counter.next() if index == 1: u.login = u"admin1" u.groups = ['admin'] elif index == 2: u.login = u"manager1" u.groups = ["manager"] elif not found_contractor and "contractor" in u.groups: u.login = u"entrepreneur1" found_contractor = True else: u.login = u"user_{0}".format(index) u.user.lastname = self.faker.last_name() u.user.firstname = self.faker.first_name() u.user.email = self.faker.ascii_safe_email() u.set_password(u.login) if u.user.has_userdatas(): u.user.userdatas.coordonnees_lastname = u.user.lastname u.user.userdatas.coordonnees_firstname = u.user.firstname u.user.userdatas.coordonnees_email1 = u.user.email for u in self.session.query(Login).join(User).filter( Login.active == False): index = counter.next() u.login = u"user_{0}".format(index) u.user.lastname = self.faker.last_name() u.user.firstname = self.faker.first_name() u.user.email = self.faker.ascii_safe_email() u.set_password(u.login) if u.user.has_userdatas(): u.user.userdatas.coordonnees_lastname = u.user.lastname u.user.userdatas.coordonnees_firstname = u.user.firstname u.user.userdatas.coordonnees_email1 = u.user.email def _an_userdatas(self): from autonomie.models.user.userdatas import ( UserDatas, CompanyDatas, AntenneOption, ) for u in self.session.query(UserDatas): if u.user_id is None: u.coordonnees_lastname = self.faker.last_name() u.coordonnees_firstname = self.faker.first_name() u.coordonnees_email1 = self.faker.ascii_safe_email() u.coordonnees_ladies_lastname = self.faker.last_name_female() u.coordonnees_email2 = self.faker.ascii_safe_email() u.coordonnees_tel = self.faker.phone_number()[:14] u.coordonnees_mobile = self.faker.phone_number()[:14] u.coordonnees_address = self.faker.street_address() u.coordonnees_zipcode = self._zipcode() u.coordonnees_city = self.faker.city() u.coordonnees_birthplace = self.faker.city() u.coordonnees_birthplace_zipcode = self._zipcode() u.coordonnees_secu = u"0 00 00 000 000 00" u.coordonnees_emergency_name = self.faker.name() u.coordonnees_emergency_phone = self.faker.phone_number()[:14] u.parcours_goals = self.faker.text() for datas in self.session.query(CompanyDatas): datas.title = self.faker.company() datas.name = self.faker.company() datas.website = self.faker.url() for a in AntenneOption.query(): a.label = u"Antenne : {0}".format(self.faker.city()) def _an_files(self): from autonomie.models.files import File for file_ in self.session.query(File): self.session.delete(file_) from autonomie.models.files import Template sample_tmpl_path = os.path.abspath( pkg_resources.resource_filename('autonomie', 'sample_templates')) for filename in os.listdir(sample_tmpl_path): filepath = os.path.join(sample_tmpl_path, filename) with open(filepath, 'r') as fbuf: tmpl = Template(name=filename, description=filename) tmpl.data = fbuf.read() self.session.add(tmpl) def _an_celery_jobs(self): self.session.execute("delete from mailing_job") self.session.execute("delete from file_generation_job") self.session.execute("delete from csv_import_job") self.session.execute("delete from job") def _an_task_mentions(self): from autonomie.models.task.mentions import TaskMention for mention in TaskMention.query(): mention.full_text = self.faker.paragraph(nb_sentences=3) self.session.merge(mention) def run(self, module_key=None): if module_key is not None: if not module_key.startswith('_an_'): module_key = u"_an_%s" % module_key keys = [module_key] methods = {module_key: getattr(self, module_key)} else: methods = {} for method_name, method in inspect.getmembers( self, inspect.ismethod): if method_name.startswith('_an_'): methods[method_name] = method keys = methods.keys() keys.sort() for key in keys: self.logger.debug(u"Step : {0}".format(key)) methods[key]() transaction.commit() transaction.begin()
class Anonymizer(object): def __init__(self, logger): self.us_faker = Faker() self.faker = Faker('fr_FR') self.logger = logger self.session = DBSESSION() def _zipcode(self): if hasattr(self.faker, 'zipcode'): return self.faker.zipcode() else: return self.faker.postcode() def _an_activity(self): from autonomie.models.activity import Activity, ActivityType from autonomie.models.workshop import Workshop for activity in self.session.query(Activity): for fieldname in ( 'point', 'objectifs', 'action', 'documents', 'notes' ): setattr(activity, fieldname, self.faker.text()) for workshop in self.session.query(Workshop).options(load_only('id')): workshop.description = self.faker.text() self.session.merge(workshop) type_labels = ( u"RV conseil", u"RV suivi", u"RV Gestion", u"RV Admin", u"RV RH", u"RV Compta", u"RV hebdo", u"RV Mensuel", ) for index, typ in enumerate(self.session.query(ActivityType).all()): typ.label = type_labels[index % 7] def _an_commercial(self): from autonomie.models.commercial import TurnoverProjection for t in self.session.query(TurnoverProjection): t.comment = self.faker.text() def _an_company(self): from autonomie.models.company import Company for comp in self.session.query(Company): comp.name = self.faker.company() comp.goal = self.faker.bs() comp.comments = self.faker.catch_phrase() comp.phone = self.faker.phone_number() comp.mobile = self.faker.phone_number() comp.email = self.faker.ascii_safe_email() header = build_header( u"{0}\n {1} - {2}".format(comp.name, comp.phone, comp.email) ) comp.header = {'name': 'header.png', 'data': header} self.session.execute(u"update company set cgv=''") def _an_competence(self): from autonomie.models.competence import ( CompetenceGridItem, CompetenceGridSubItem, ) for item in self.session.query(CompetenceGridItem): item.progress = self.faker.text() for item in self.session.query(CompetenceGridSubItem): item.comments = self.faker.text() def _an_config(self): from autonomie.models.config import Config, ConfigFiles Config.set('cae_admin_mail', self.faker.ascii_safe_email()) Config.set('welcome', self.faker.sentence(nb_words=15)) ConfigFiles.set( 'logo.png', { 'data': pkg_resources.resource_stream( 'autonomie', 'static/img/autonomie.jpg' ), 'filename': 'logo.jpg', } ) Config.set('coop_cgv', self.faker.paragraph(nb_sentences=40)) Config.set('coop_pdffootertitle', u"""Une activité de ma CAE SARL SCOP à \ capital variable""") Config.set('coop_pdffootercourse', u"""Organisme de formation N° de déclaration \ d'activité au titre de la FPC : xx xx xxxxx. MA CAE est exonérée de TVA pour \ les activités s'inscrivant dans le cadre de la formation professionnelle \ conformément à l'art. L920-4 du Code du travail et de l'art. 202 C de \ l'annexe II du code général des impôts""") footer = u"""RCS XXXX 000 000 000 00000 - SIRET 000 \ 000 000 000 00 - Code naf 0000Z TVA INTRACOM : FR0000000. Siège social : 10 \ rue vieille 23200 Aubusson""" Config.set('coop_pdffootercontent', footer) Config.set('coop_pdffootertext', footer) Config.set('coop_invoicepayment', u"""Par chèque libellé à l'ordre de : \ MA CAE/ %ENTREPRENEUR% à envoyer à l'adresse suivante : MA CAE/ %ENTREPRENEUR% 10 rue Vieille 23200 Aubusson Ou par virement sur le compte de MA CAE/ %ENTREPRENEUR% MA BANQUE RIB : xxxxx xxxx xxxxxxxxxxxxx IBAN : xxxx xxxx xxxx xxxx xxxx xxxx xxx BIC : MABAFRMACAXX Merci d'indiquer le numéro de facture sur le libellé de votre virement ou \ dos de votre chèque. """) Config.set("coop_invoicelate", u"""Tout retard de paiement entraînera à titre de \ clause pénale, conformément à la loi 92.1442 du 31 décembre 1992, une \ pénalité égale à un taux d'intérêt équivalent à une fois et demi le taux \ d'intérêt légal en vigueur à cette échéance. Une indemnité de 40 euros forfaitaire sera demandée en sus pour chaque \ facture payée après l’échéance fixée. Celle-ci n’est pas soumise à TVA.""") Config.set("activity_footer", footer) Config.set('workshop_footer', footer) def _an_customer(self): from autonomie.models.customer import Customer for cust in self.session.query(Customer): cust.name = self.faker.company() cust.address = self.faker.street_address() cust.zipcode = self._zipcode() cust.city = self.faker.city() cust.lastname = self.faker.last_name() cust.firstname = self.faker.first_name() cust.email = self.faker.ascii_safe_email() cust.phone = self.faker.phone_number() cust.fax = self.faker.phone_number() cust.tva_intracomm = "" cust.comments = self.faker.bs() def _an_expense(self): from autonomie.models.expense.sheet import ( BaseExpenseLine, ExpenseKmLine, Communication, ) for line in self.session.query(BaseExpenseLine): line.description = self.faker.text() for line in self.session.query(ExpenseKmLine): line.start = self.faker.city() line.end = self.faker.city() for com in self.session.query(Communication): com.content = self.faker.text() def _an_node(self): from autonomie.models.node import Node for node in self.session.query(Node): node.name = self.faker.sentence(nb_words=4, variable_nb_words=True) def _an_payment(self): from autonomie.models.payments import BankAccount for b in self.session.query(BankAccount): b.label = u"Banque : {0}".format(self.faker.company()) def _an_project(self): from autonomie.models.project import Project, Phase for p in self.session.query(Project): p.name = self.faker.sentence(nb_words=5) p.definition = self.faker.text() for p in self.session.query(Phase): if not p.name.is_default(): p.name = self.faker.sentence(nb_words=3) def _an_sale_product(self): from autonomie.models.sale_product import ( SaleProductCategory, SaleProduct, SaleProductGroup, ) for cat in self.session.query(SaleProductCategory): cat.title = self.faker.sentence(nb_words=3) cat.description = self.faker.text() for prod in self.session.query(SaleProduct): prod.label = self.faker.sentence(nb_words=2) prod.description = self.faker.text() for group in self.session.query(SaleProductGroup): group.title = self.faker.sentence(nb_words=2) group.description = self.faker.text() def _an_statistic(self): from autonomie.models.statistics import ( StatisticSheet ) for s in self.session.query(StatisticSheet): s.title = self.faker.sentence(nb_words=4) def _an_task(self): from autonomie.models.task import ( Task, DiscountLine, TaskLine, TaskLineGroup, Estimation, TaskStatus, ) for task in self.session.query(Task): if task.status_comment: task.status_comment = self.faker.text() task.description = self.faker.text() task.address = task.customer.full_address task.workplace = self.faker.address() task.payment_conditions = u"Par chèque ou virement à réception de " u"facture" if task.notes: task.notes = self.faker.text() for line in self.session.query(DiscountLine): line.description = self.faker.text() for line in self.session.query(TaskLine): line.description = self.faker.text() for group in self.session.query(TaskLineGroup): if group.title: group.title = self.faker.sentence(nb_words=4) if group.description: group.description = self.faker.text() for status in self.session.query(TaskStatus): status.status_comment = self.faker.sentence(nb_words=6) def _an_task_config(self): from autonomie.models.task import ( PaymentConditions, ) for i in self.session.query(PaymentConditions): self.session.delete(i) for index, label in enumerate( [u"30 jours fin de mois", u"À réception de facture"] ): condition = PaymentConditions(label=label) if index == 0: condition.default = True self.session.add(condition) def _an_user(self): from autonomie.models.user.login import ( Login, ) from autonomie.models.user.user import ( User, ) self.session.execute("Update accounts set session_datas='{}'") counter = itertools.count() found_contractor = False for u in self.session.query(Login).join(User).filter(Login.active==True): index = counter.next() if index == 1: u.login = u"admin1" u.groups = ['admin'] elif index == 2: u.login = u"manager1" u.groups = ["manager"] elif not found_contractor and "contractor" in u.groups: u.login = u"entrepreneur1" found_contractor = True else: u.login = u"user_{0}".format(index) u.user.lastname = self.faker.last_name() u.user.firstname = self.faker.first_name() u.user.email = self.faker.ascii_safe_email() u.set_password(u.login) if u.user.has_userdatas(): u.user.userdatas.coordonnees_lastname = u.user.lastname u.user.userdatas.coordonnees_firstname = u.user.firstname u.user.userdatas.coordonnees_email1 = u.user.email for u in self.session.query(Login).join(User).filter(Login.active==False ): index = counter.next() u.login = u"user_{0}".format(index) u.user.lastname = self.faker.last_name() u.user.firstname = self.faker.first_name() u.user.email = self.faker.ascii_safe_email() u.set_password(u.login) if u.user.has_userdatas(): u.user.userdatas.coordonnees_lastname = u.user.lastname u.user.userdatas.coordonnees_firstname = u.user.firstname u.user.userdatas.coordonnees_email1 = u.user.email def _an_userdatas(self): from autonomie.models.user.userdatas import ( UserDatas, CompanyDatas, AntenneOption, ) for u in self.session.query(UserDatas): if u.user_id is None: u.coordonnees_lastname = self.faker.last_name() u.coordonnees_firstname = self.faker.first_name() u.coordonnees_email1 = self.faker.ascii_safe_email() u.coordonnees_ladies_lastname = self.faker.last_name_female() u.coordonnees_email2 = self.faker.ascii_safe_email() u.coordonnees_tel = self.faker.phone_number()[:14] u.coordonnees_mobile = self.faker.phone_number()[:14] u.coordonnees_address = self.faker.street_address() u.coordonnees_zipcode = self._zipcode() u.coordonnees_city = self.faker.city() u.coordonnees_birthplace = self.faker.city() u.coordonnees_birthplace_zipcode = self._zipcode() u.coordonnees_secu = u"0 00 00 000 000 00" u.coordonnees_emergency_name = self.faker.name() u.coordonnees_emergency_phone = self.faker.phone_number()[:14] u.parcours_goals = self.faker.text() for datas in self.session.query(CompanyDatas): datas.title = self.faker.company() datas.name = self.faker.company() datas.website = self.faker.url() for a in AntenneOption.query(): a.label = u"Antenne : {0}".format(self.faker.city()) def _an_files(self): from autonomie.models.files import File for file_ in self.session.query(File): self.session.delete(file_) from autonomie.models.files import Template sample_tmpl_path = os.path.abspath( pkg_resources.resource_filename('autonomie', 'sample_templates') ) for filename in os.listdir(sample_tmpl_path): filepath = os.path.join(sample_tmpl_path, filename) with open(filepath, 'r') as fbuf: tmpl = Template(name=filename, description=filename) tmpl.data = fbuf.read() self.session.add(tmpl) def _an_celery_jobs(self): self.session.execute("delete from mailing_job") self.session.execute("delete from file_generation_job") self.session.execute("delete from csv_import_job") self.session.execute("delete from job") def _an_task_mentions(self): from autonomie.models.task.mentions import TaskMention for mention in TaskMention.query(): mention.full_text = self.faker.paragraph(nb_sentences=3) self.session.merge(mention) def run(self, module_key=None): if module_key is not None: if not module_key.startswith('_an_'): module_key = u"_an_%s" % module_key keys = [module_key] methods = {module_key: getattr(self, module_key)} else: methods = {} for method_name, method in inspect.getmembers( self, inspect.ismethod ): if method_name.startswith('_an_'): methods[method_name] = method keys = methods.keys() keys.sort() for key in keys: self.logger.debug(u"Step : {0}".format(key)) methods[key]() transaction.commit() transaction.begin()
fake = Faker() patient_db_cur = DBHelper(prefix="patients_cedars") notes_db_cur = DBHelper(prefix="notes_cedars") patient_csv_cur = Writer() note_csv_cur = Writer() for x in range(20): patientid = randint(00000000, 99999999) patient = cm.patient_fields note = cm.p_note_fields patient["patientMrn"] = str(patientid) patient["firstName"] = fake.first_name() patient["lastName"] = fake.last_name() patient["middleName"] = fake.last_name() patient["birthDate"] = fake.iso8601() patient["mortalityStatus"] = "ALIVE" patient["email"] = fake.ascii_safe_email() patient["phoneNumberWork"] = fake.phone_number() patient["phoneNumberCell"] = fake.phone_number() patient["phoneNumberHome"] = fake.phone_number() note["patientMrn"] = patientid note["noteText"] = "insert sample note here." patient_db_cur.insert_record(payload=patient) notes_db_cur.insert_record(payload=note) patient_records = patient_db_cur.get_all_record() note_records = notes_db_cur.get_all_record() patient_csv_cur.save(record=patient_records, file_loc="data/sample_cedars_patients.csv") note_csv_cur.save(record=note_records, file_loc="data/sample_cedars_notes.csv")
products['requires_shipping'] = 1 products['sku'] = 'IPOD-342-N' products['title'] = 'IPod Nano' products['variant_id'] = 4264112 products['variant_title'] = 'Pink' products['vendor'] = 'Apple' products['name'] = 'IPod Nano - Pink' fulfilment['products'] = products shopper_profile = {} shopper_profile['name'] = faker.name_female() shopper_profile['username'] = faker.user_name() shopper_profile['sex'] = 'F' shopper_profile['mail'] = faker.ascii_safe_email() order = {} order['billing_address'] = billing_address order['credit_card'] = creditcard_info order['web_client_details'] = client_details order['fulfilment'] = fulfilment order['shopper'] = shopper_profile order['buyer_accepts_marketing'] = faker.boolean( chance_of_getting_true=50) order['cart_token'] = faker.uuid4() print(json.dumps(order)) #f.write(json.dumps(order)) #producer = KafkaProducer(bootstrap_servers='localhost:9092', value_serializer=json.loads)
def generate_email(): fake = Faker() return fake.ascii_safe_email()
fulfillment['total_price'] = round(purchase_amount,2) products = {} products['product_id'] = random.choice(product_ids) products['quantity'] = random.randint(1, 10) products['requires_shipping'] = 1 fulfillment['products'] = products shopper_profile = {} shopper_profile['name'] = faker.name_female() shopper_profile['username'] = faker.user_name() shopper_profile['sex']='F' shopper_profile['mail']= faker.ascii_safe_email() order = {} order['billing_address'] = billing_address order['credit_card'] = creditcard_info order['web_client_details'] = client_details order['fulfillment'] = fulfillment order['shopper'] = shopper_profile order['buyer_accepts_marketing'] = faker.boolean(chance_of_getting_true=50) order['cart_token'] = faker.uuid4() print(json.dumps(order)) #f.write(json.dumps(order)) #producer = KafkaProducer(bootstrap_servers='localhost:9092', value_serializer=json.loads) #pkt = json.dumps(order)
print("company", fake.company()) print("credit_card_full", fake.credit_card_full(card_type=None)) print("date", fake.date(pattern="%Y-%m-%d", end_datetime=None)) print("timezone", fake.timezone()) print("file_name", fake.file_name(category=None, extension=None)) print("file_path", fake.file_path(depth=1, category=None, extension=None)) print("mime_type", fake.mime_type(category=None)) print("file_extension", fake.file_extension(category=None)) print("latlng", fake.latlng()) print("uri_extension", fake.uri_extension()) print("ascii_safe_email", fake.ascii_safe_email()) print("uri", fake.uri()) print("ipv4", fake.ipv4(network=False, address_class=None, private=None)) print("job", fake.job()) print("sentences", fake.sentences(nb=3, ext_word_list=None)) print("text", fake.text(max_nb_chars=200, ext_word_list=None)) print("paragraphs", fake.paragraphs(nb=3, ext_word_list=None)) print("word", fake.word(ext_word_list=None)) print("locale", fake.locale()) print("language_code", fake.language_code()) print("profile", fake.profile(fields=None, sex=None)) print("name_female", fake.name_female())
def start_flow(flow_context: FlowContext, flow_session_manager: FlowSessionManager, shipments: list[str]) -> None: """ Creates a move. Can raise internal_client.ApiException """ api_client = flow_session_manager.internal_api_client(UserType.MILMOVE) users_api_client = users_api.UsersApi(api_client) user = users_api_client.show_logged_in_user() duty_locations_api_client = duty_locations_api.DutyLocationsApi(api_client) sm_id = user.service_member.id duty_location_with_counseling_in_KKFA_gbloc = "Blue Grass Army Depot" old_locations = duty_locations_api_client.search_duty_locations( duty_location_with_counseling_in_KKFA_gbloc, _check_return_type=False, ) fake = Faker() first_name = fake.first_name() last_name = fake.last_name() duty_location_id = old_locations.value[0]["id"] if not duty_location_id: raise Exception("Cannot find duty location: " + duty_location_with_counseling_in_KKFA_gbloc) # When the prime attempts to update the shipment later on, the distance between the origin and # destination addresses is calculated by a call to the HERE api. If the API cannot find a route # between them (which it often can't for randomly generated addresses), then it fails the request # and prevents the prime from updating the shipment. # So for now, I'm just hardcoding these addresses that work. In the future, if we remove the HERE # api and just use postal codes to estimate distances, we can switch back to random addresses. state = "CA" zip_in_KKFA_gbloc = "90210" residential_address = Address( street_address1="3373 NW Martin Luther King Jr Blvd", city="Beverly Hills", state=state, postal_code=zip_in_KKFA_gbloc, ) destination_address = Address( street_address1="3373 NW Martin Luther King Jr Blvd", city="Augusta", state="GA", postal_code="30815", ) sm_pdata = PatchServiceMemberPayload( edipi=fake.unique.numerify("##########"), affiliation=Affiliation("ARMY"), rank=ServiceMemberRank("E_1"), first_name=first_name, last_name=last_name, telephone=fake.numerify("2##-555-####"), email_is_preferred=True, personal_email=user["email"], current_location_id=duty_location_id, residential_address=residential_address, backup_mailing_address=Address( street_address1=fake.street_address(), street_address2="P.O. Box " + fake.building_number(), city=fake.city(), state=state, postal_code=fake.postcode(), ), ) service_members_api_client = service_members_api.ServiceMembersApi(api_client) service_members_api_client.patch_service_member(sm_id, sm_pdata) backup_contacts_api_client = backup_contacts_api.BackupContactsApi(api_client) backup_contacts_api_client.create_service_member_backup_contact( sm_id, CreateServiceMemberBackupContactPayload( name=fake.name(), email=fake.ascii_safe_email(), permission=BackupContactPermission("NONE"), telephone=fake.numerify("3##-555-####"), ), ) new_duty_location_name = "Fort Gordon" new_locations = duty_locations_api_client.search_duty_locations( new_duty_location_name, _check_return_type=False, ) new_duty_location_id = new_locations.value[0]["id"] if not duty_location_id: raise Exception("Cannot find duty location: " + new_duty_location_name) issue_date = user.service_member.created_at odt = OrdersTypeDetail(value=None, _check_type=False) orders_api_client = orders_api.OrdersApi(api_client) orders = orders_api_client.create_orders( CreateUpdateOrders( service_member_id=sm_id, issue_date=issue_date.date(), report_by_date=(issue_date + timedelta(days=7)).date(), orders_type=OrdersType("PERMANENT_CHANGE_OF_STATION"), has_dependents=False, spouse_has_pro_gear=False, new_duty_location_id=new_duty_location_id, orders_type_detail=odt, department_indicator=DeptIndicator("ARMY"), ), # looks like the python openapi code generator doesn't # handle a $ref that is also x-nullable? _check_return_type=False, ) current_move = orders.moves[0] order_upload_id = orders.uploaded_orders["id"] orders_file = open("fixtures/fake_orders_image.jpg", "rb") uploads_api_client = uploads_api.UploadsApi(api_client) uploads_api_client.create_upload(orders_file, document_id=order_upload_id) move_id = current_move["id"] flow_context["move_id"] = move_id flow_context["locator"] = current_move["locator"] moves_api_client = moves_api.MovesApi(api_client) moves_api_client.patch_move(move_id, PatchMovePayload(selected_move_type=SelectedMoveType("HHG"))) mto_shipment_api_client = mto_shipment_api.MtoShipmentApi(api_client) for shipmentType in shipments: shipment = { "HHG": create_hhg_shipment(move_id, issue_date, residential_address, destination_address), "NTS": create_nts_shipment(move_id, issue_date, residential_address), }.get(shipmentType, create_hhg_shipment(move_id, issue_date, residential_address, destination_address)) mto_shipment_api_client.create_mto_shipment(body=shipment) hhg_certification_text = """ **Financial Liability** For a HHG shipment, I am entitled to move a certain amount of HHG by weight ... """ moves_api_client.submit_move_for_approval( move_id, SubmitMoveForApprovalPayload( certificate=CreateSignedCertificationPayload( date=datetime.now(), signature=f"{first_name} {last_name}", certification_text=hhg_certification_text, certification_type=SignedCertificationTypeCreate("SHIPMENT"), ), ), )
def pv_produce(self): while True: # generating values for record and setting the key,value pair key, value = self.setKV(self.getValues()) # producing entry to topic self.producer.produce(topic=self.topic, value=value, key=key) time.sleep(0.001) print("\nFlushing records") self.producer.flush() if __name__ == '__main__': # getting arguments for producer server = sys.argv[1] # usually: localhost:9092 schema_registry = sys.argv[2] # usually: http://localhost:8081 topic = sys.argv[3] # usually: pageview # creating list of emails faker = Faker() emails = [] for i in range(NUM_USERS): faker.seed(i + 9092) # seed to ensure consistent emails emails.append(faker.ascii_safe_email()) # create producer and begin producing to kafka cluster p = ProducerAvroPV(server, schema_registry, topic, emails) p.pv_produce()
def _run_task(self): fake = Faker() if ("num_number" in self.options): num_records = self.options["num_records"] else: num_records = 100 script_lines = ['BEGIN TRANSACTION;'] # Accounts # TODO: Have an array that tracks Names to check for duplicates and then regenerate script_lines.append('CREATE TABLE "Account" (') script_lines.append('id INTEGER NOT NULL,') script_lines.append('"Name" VARCHAR(255),') script_lines.append('"Type" VARCHAR(255),') script_lines.append('"BillingStreet" VARCHAR(255),') script_lines.append('"BillingCity" VARCHAR(255),') script_lines.append('"BillingState" VARCHAR(255),') script_lines.append('"BillingPostalCode" VARCHAR(255),') script_lines.append('"BillingCountry" VARCHAR(255),') script_lines.append('"ShippingStreet" VARCHAR(255),') script_lines.append('"ShippingCity" VARCHAR(255),') script_lines.append('"ShippingState" VARCHAR(255),') script_lines.append('"ShippingPostalCode" VARCHAR(255),') script_lines.append('"ShippingCountry" VARCHAR(255),') script_lines.append('"Phone" VARCHAR(255),') script_lines.append('"HouseholdPhone" VARCHAR(255),') script_lines.append('"AccountType" VARCHAR(255),') script_lines.append('PRIMARY KEY (id)') script_lines.append(');') for index in range(num_records): account_address = fake.street_address() # Organization or Household specific values if (index % 2) == 0: account_name = account_address account_type = '' record_type = 'Household Account' else: account_name = fake.company() account_type = fake.word(ext_word_list=[ 'Corporate', 'Nonprofit', 'Government', 'Foundation' ]) record_type = 'Organization' account_line = 'INSERT INTO "Account" VALUES(' account_line += str(index) + ',' account_line += '\'' + account_name + '\',' account_line += '\'' + account_address + '\',' account_line += '\'' + fake.city() + '\',' state_code = fake.state_abbr() account_line += '\'' + state_code + '\',' account_line += '\'' + fake.zipcode_in_state( state_abbr=state_code) + '\',' account_line += '\'United States\',' account_line += '\'\',' account_line += '\'\',' account_line += '\'\',' account_line += '\'\',' account_line += '\'\',' account_line += '\'' + fake.phone_number() + '\',' account_line += '\'' + fake.phone_number() + '\',' account_line += '\'' + account_type + '\',' account_line += '\'' + record_type + '\'' account_line += ');' script_lines.append(account_line) # Contacts # TODO: AccountId should only be Household accounts # TODO: Primary affiliations should only be Organization accounts script_lines.append('CREATE TABLE "Contact" (') script_lines.append('id INTEGER NOT NULL,') script_lines.append('"FirstName" VARCHAR(255),') script_lines.append('"LastName" VARCHAR(255),') script_lines.append('"Deceased" VARCHAR(255),') script_lines.append('"DoNotContact" VARCHAR(255),') script_lines.append('"PreferredPhone" VARCHAR(255),') script_lines.append('"PreferredEmail" VARCHAR(255),') script_lines.append('"HomePhone" VARCHAR(255),') script_lines.append('"MobilePhone" VARCHAR(255),') script_lines.append('"WorkPhone" VARCHAR(255),') script_lines.append('"PersonalEmail" VARCHAR(255),') script_lines.append('"WorkEmail" VARCHAR(255),') script_lines.append('"AccountId" VARCHAR(255),') script_lines.append('"npsp__Primary_Affiliation__c" VARCHAR(255),') script_lines.append('PRIMARY KEY (id)') script_lines.append(');') account_assignments = [] for index in range(num_records): account_assignments.append( fake.random_int(min=0, max=(num_records - 1))) account_assignments.sort() for index in range(num_records): account_line = 'INSERT INTO "Contact" VALUES(' account_line += str(index) + ',' if (index % 2) == 0: account_line += '\'' + fake.first_name_male() + '\',' account_line += '\'' + fake.last_name_male() + '\',' else: account_line += '\'' + fake.first_name_female() + '\',' account_line += '\'' + fake.last_name_female() + '\',' # account_line += '\'' + fake.date_of_birth(minimum_age=18).strftime("%d-%m-%Y") + '\',' account_line += '\'' + str( fake.boolean(chance_of_getting_true=5)) + '\',' account_line += '\'' + str( fake.boolean(chance_of_getting_true=5)) + '\',' account_line += '\'' + fake.word( ext_word_list=['Home', 'Work', 'Mobile']) + '\',' account_line += '\'' + fake.word( ext_word_list=['Personal', 'Work']) + '\',' account_line += '\'' + fake.phone_number() + '\',' account_line += '\'' + fake.phone_number() + '\',' account_line += '\'' + fake.phone_number() + '\',' account_line += '\'' + fake.ascii_safe_email() + '\',' account_line += '\'' + fake.ascii_safe_email() + '\',' account_line += '\'' + str(account_assignments[index]) + '\',' account_line += '\'' + str(account_assignments[index]) + '\'' account_line += ');' script_lines.append(account_line) # print(fake.word(ext_word_list=['Partners','General','Global','Campus 1', 'Campus 2']))' script_lines.append('COMMIT;') with open(self.options["sql_path"], "w") as outfile: outfile.write("\n".join(script_lines)) print("File created at " + self.options["sql_path"])
from faker import Faker from faker_vehicle import VehicleProvider import time import random import redis import json fake = Faker() fake.add_provider(VehicleProvider) r = redis.Redis(host="192.168.15.133", port=6379, db=0, password="") while (True): output = { "id": fake.numerify(text="id-%#%#"), "nome": fake.name(), "telefone": fake.numerify(text="(%%) 9%%%%-%%%%"), "email": fake.ascii_safe_email(), "endereco": fake.address(), "veiculo_placa": fake.license_plate(), "veiculo_ano": fake.vehicle_year(), "veiculo_fabricante": fake.vehicle_make(), "veiculo_modelo": fake.vehicle_model() } print(output) print(r.xadd("veiculo", output)) time.sleep(random.randint(1, 10))
class CreateMasterViewTest(CreateViewTest, TestCase): fixtures = ('profile.json', 'company.json', 'reception.json', 'master.json', 'service.json') def setUp(self): self.uri = 'profiles/master' self.login() self.faker = Faker() self.generate_request_params() def generate_request_params(self): profile = self.faker.profile(fields=('name', 'birthdate', '')) first_name, last_name, *other = profile['name'].split(' ', 2) email = self.faker.ascii_safe_email() self.request_params = { 'profile': { 'first_name': first_name, 'last_name': last_name, 'birth_date': date_format(profile['birthdate'], 'DATE_FORMAT'), 'email': email, 'password': get_random_string(length=12).lower() }, 'work_types': [{ 'name': service.name, 'duration': '01:30:00' } for service in Service.objects.all()], 'company': { 'name': self.faker.company(), 'address': self.faker.street_address(), 'opening_hours': '10:00', 'closing_hours': '18:00' }, 'new_company': True } def test_blank_profile_first_name(self): self.check_blank_value('profile.first_name', self.expected_messages['blank']) def test_missing_profile_first_name(self): self.check_missing_value('profile.first_name', self.expected_messages['required']) def test_incorrect_profile_first_name(self): self.check_incorrect_value('profile.first_name', 123, 'The value contains numbers') def test_blank_profile_last_name(self): self.check_blank_value('profile.last_name', self.expected_messages['blank']) def test_missing_profile_last_name(self): self.check_missing_value('profile.last_name', self.expected_messages['required']) def test_incorrect_profile_last_name(self): self.check_incorrect_value('profile.last_name', 123, 'The value contains numbers') def test_unique_together_profile_fields(self): self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') set_nested_attribute('profile.email', self.faker.ascii_safe_email(), self.request_params) response = self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.assertIn( 'The fields first_name, last_name must make a unique set.', [ str(error) for error in get_nested_attribute( 'profile.non_field_errors', response.data) ]) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_incorrect_profile_birth_date(self): self.check_incorrect_value( 'profile.birth_date', 'abc', 'Date has wrong format. Use one of these formats instead: YYYY-MM-DD.' ) self.check_incorrect_value( 'profile.birth_date', date_format(datetime.today(), 'DATE_FORMAT'), "Sorry, we think you're too young for that sh**") def test_blank_profile_email(self): self.check_blank_value('profile.email', self.expected_messages['blank']) def test_missing_profile_email(self): self.check_missing_value('profile.email', self.expected_messages['required']) def test_incorrect_profile_email(self): self.check_incorrect_value( 'profile.email', 123, 'Ensure this field has at least 8 characters.') self.check_incorrect_value('profile.email', 123, 'Enter a valid email address.') def test_unique_profile_email(self): self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.check_incorrect_value('profile.email', self.request_params['profile']['email'], 'This field must be unique.') def test_blank_profile_phone(self): self.check_blank_value('profile.phone', self.expected_messages['blank']) def test_incorrect_profile_phone(self): self.check_incorrect_value('profile.phone', 'abc', 'Incorrect phone number') self.check_incorrect_value('profile.phone', 123, 'Incorrect phone number') def test_blank_company_name(self): self.check_blank_value('company.name', self.expected_messages['blank']) def test_missing_company_name(self): self.check_missing_value('company.name', self.expected_messages['required']) def test_blank_company_address(self): self.check_blank_value('company.address', self.expected_messages['blank']) def test_missing_company_opening_hours(self): self.check_missing_value('company.opening_hours', self.expected_messages['required']) def test_incorrect_company_opening_hours(self): message = 'Time has wrong format. Use one of these formats instead: hh:mm[:ss[.uuuuuu]].' self.check_incorrect_value('company.opening_hours', '', message) self.check_incorrect_value('company.opening_hours', 'abc', message) self.check_incorrect_value('company.opening_hours', 123, message) def test_missing_company_closing_hours(self): self.check_missing_value('company.closing_hours', self.expected_messages['required']) def test_incorrect_company_closing_hours(self): message = 'Time has wrong format. Use one of these formats instead: hh:mm[:ss[.uuuuuu]].' self.check_incorrect_value('company.closing_hours', '', message) self.check_incorrect_value('company.closing_hours', 'abc', message) self.check_incorrect_value('company.closing_hours', 123, message) def test_blank_work_type_name(self): set_nested_attribute('name', '', self.request_params.get('work_types')[0]) response = self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.assertIn(self.expected_messages['blank'], [ str(error) for error in get_nested_attribute( 'name', response.data.get('work_types')[0]) ]) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_missing_work_type_name(self): pop_nested_attribute('name', self.request_params.get('work_types')[0]) response = self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.assertIn(self.expected_messages['required'], [ str(error) for error in get_nested_attribute( 'name', response.data.get('work_types')[0]) ]) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_incorrect_work_type_name(self): set_nested_attribute('name', 'abc', self.request_params.get('work_types')[0]) set_nested_attribute('name', 123, self.request_params.get('work_types')[1]) response = self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.assertIn("The system doesn't support current service", [ str(error) for error in get_nested_attribute( 'name', response.data.get('work_types')[0]) ]) self.assertIn("The value contains numbers", [ str(error) for error in get_nested_attribute( 'name', response.data.get('work_types')[1]) ]) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_blank_work_type_duration(self): set_nested_attribute('duration', '', self.request_params.get('work_types')[0]) response = self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.assertIn('Ensure this value is greater than or equal to 0:15:00.', [ str(error) for error in get_nested_attribute( 'duration', response.data.get('work_types')[0]) ]) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_missing_work_type_duration(self): pop_nested_attribute('duration', self.request_params.get('work_types')[0]) response = self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.assertIn(self.expected_messages['required'], [ str(error) for error in get_nested_attribute( 'duration', response.data.get('work_types')[0]) ]) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_incorrect_work_type_duration(self): set_nested_attribute('duration', 'abc', self.request_params.get('work_types')[0]) set_nested_attribute('duration', 123, self.request_params.get('work_types')[1]) response = self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.assertIn( "Duration has wrong format. Use one of these formats instead: [DD] [HH:[MM:]]ss[.uuuuuu].", [ str(error) for error in get_nested_attribute( 'duration', response.data.get('work_types')[0]) ]) self.assertIn("Ensure this value is greater than or equal to 0:15:00.", [ str(error) for error in get_nested_attribute( 'duration', response.data.get('work_types')[1]) ]) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_blank_company_enter_code(self): set_nested_attribute('new_company', False, self.request_params) self.check_blank_value('company.enter_code', self.expected_messages['blank']) def test_required_company_enter_code(self): set_nested_attribute('new_company', False, self.request_params) set_nested_attribute('company.enter_code', 'test', self.request_params) self.check_missing_value('company.enter_code', self.expected_messages['required']) def test_incorrect_company_enter_code(self): message = 'Not found company by current enter_code' set_nested_attribute('new_company', False, self.request_params) self.check_incorrect_value('company.enter_code', 'abc', message) self.check_incorrect_value('company.enter_code', 123, message) def test_blank_new_company(self): self.check_blank_value('new_company', 'Must be a valid boolean.') def test_missing_new_company(self): self.check_missing_value('new_company', self.expected_messages['required']) def test_incorrect_new_company(self): self.check_incorrect_value('new_company', 'abc', 'Must be a valid boolean.') self.check_incorrect_value('new_company', 123, 'Must be a valid boolean.') def test_create_master_for_exist_company(self): company = Company.objects.first() set_nested_attribute('new_company', False, self.request_params) set_nested_attribute('company.enter_code', company.enter_code, self.request_params) response = self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.assertIn('id', response.data) self.assertIn('date_joined', response.data) self.assertTrue( Master.objects.filter(pk=response.data.get('id')).exists()) self.assertEqual(response.status_code, status.HTTP_201_CREATED) def test_create_master_and_new_company(self): response = self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.assertIn('id', response.data) self.assertIn('date_joined', response.data) self.assertTrue( Master.objects.filter(pk=response.data.get('id')).exists()) self.assertEqual(response.status_code, status.HTTP_201_CREATED)
class CreateProfileViewTest(CreateViewTest, TestCase): fixtures = ('profile.json', ) def setUp(self): self.uri = 'profiles' self.login() self.faker = Faker() self.generate_request_params() def generate_request_params(self): profile = self.faker.profile(fields=('name', 'birthdate', 'ssn')) first_name, last_name, *other = profile['name'].split(' ', 2) self.request_params = { 'first_name': first_name, 'last_name': last_name, 'birth_date': date_format(profile['birthdate'], 'DATE_FORMAT'), 'email': self.faker.ascii_safe_email(), 'password': get_random_string(length=12).lower(), 'phone': f'+380{profile["ssn"].replace("-", "")}' } def test_blank_first_name(self): self.check_blank_value('first_name', self.expected_messages['blank']) def test_missing_first_name(self): self.check_missing_value('first_name', self.expected_messages['required']) def test_incorrect_first_name(self): self.check_incorrect_value('first_name', 123, 'The value contains numbers') def test_blank_last_name(self): self.check_blank_value('last_name', self.expected_messages['blank']) def test_missing_last_name(self): self.check_missing_value('last_name', self.expected_messages['required']) def test_incorrect_last_name(self): self.check_incorrect_value('last_name', 123, 'The value contains numbers') def test_unique_together_fields(self): self.client.post(f'/api/v1/{self.uri}/', self.request_params) self.request_params['email'] = self.faker.ascii_safe_email() response = self.client.post(f'/api/v1/{self.uri}/', self.request_params) self.assertEqual( 'The fields first_name, last_name must make a unique set.', str(response.data.get('non_field_errors')[0])) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_incorrect_birth_date(self): self.check_incorrect_value( 'birth_date', 'abc', 'Date has wrong format. Use one of these formats instead: YYYY-MM-DD.' ) self.check_incorrect_value( 'birth_date', date_format(datetime.today(), 'DATE_FORMAT'), "Sorry, we think you're too young for that sh**") def test_blank_email(self): self.check_blank_value('email', self.expected_messages['blank']) def test_missing_email(self): self.check_missing_value('email', self.expected_messages['required']) def test_incorrect_email(self): self.check_incorrect_value( 'email', 123, 'Ensure this field has at least 8 characters.') self.check_incorrect_value('email', 123, 'Enter a valid email address.') def test_unique_email(self): self.client.post(f'/api/v1/{self.uri}/', self.request_params) self.check_incorrect_value('email', self.request_params['email'], 'This field must be unique.') def test_blank_phone(self): self.check_blank_value('phone', self.expected_messages['blank']) def test_incorrect_phone(self): self.check_incorrect_value('phone', 'abc', 'Incorrect phone number') self.check_incorrect_value('phone', 123, 'Incorrect phone number') def test_create_profile(self): response = self.client.post(f'/api/v1/{self.uri}/', self.request_params, content_type='application/json') self.assertIn('id', response.data) self.assertIn('date_joined', response.data) self.assertTrue(Profile.is_profile_exist(response.data.get('id'))) self.assertEqual(response.status_code, status.HTTP_201_CREATED)
print("Email:\t ", fake.ascii_company_email()) print("Date time add:\t ", fake.date_time_ad()) print("ISO8601:\t ", fake.iso8601()) print("Postcode:\t ", fake.postcode()) print("Sentence:\t ", fake.sentences()) print("ASCII email:\t ", fake.ascii_email()) print("Date time beween:\t ", fake.date_time_between()) print("ITIN:\t ", fake.itin()) print("Postcode in state:\t ", fake.postcode_in_state()) # print("Set formatter:\t ", fake.set_formatter()) print("ASCII free email:\t ", fake.ascii_free_email()) print("Date time between dates:\t ", fake.date_time_between_dates()) print("Fake job:\t ", fake.job()) print("Prefix:\t ", fake.prefix()) print("SHA1:\t ", fake.sha1()) print("ASCII safe email:\t ", fake.ascii_safe_email()) print("Date time this country:\t ", fake.date_time_this_century()) print("Language code:\t ", fake.language_code()) print("Prefix female:\t ", fake.prefix_female()) print("SHA256:\t ", fake.sha256()) print("Bank country:\t", fake.bank_country()) print("Data time this decade:\t ", fake.date_time_this_decade()) print("Last name:\t ", fake.last_name()) print("Prefix male:\t ", fake.prefix_male()) print("Simple profile:\t", fake.simple_profile()) print("BBAN:\t ", fake.bban()) print("Date time this month:\t ", fake.date_time_this_month()) print("Last name female:\t ", fake.last_name_female()) print("Profile:\t ", fake.profile()) ''' print(fake.slug())
status = "O" sql = "INSERT INTO jobs (jobId, serviceId, jobName, stdTime, stdPrice, staffQty, user, flag, status, created, modified, xguid) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s ,%s)" val = (jobId, serviceId, jobName, stdTime, stdPrice, staffQty, user, flag, status, "2020-07-21 08:14:07", "2020-07-21 08:14:07", "") """ refnum = "JOR-"+random.randint(0,99999) requestRefNo = "SRQ-"+random.randint(0,99999) companyId = fake.word() jobId = "S-"+random.randint(0, 999) jobStatus = random.randint(0, 999) siteId = "N-"+random.randint(0, 999999) problemDesc = fake.word() reportDate = "2020-07-21 02:52:00" urgencyLevel = fake.word() poc = fake.first_name() mobile = fake.phone_number() tel = fake.phone_number() email = fake.ascii_safe_email() designation = fake.word() sql = "INSERT INTO jobs (jobId, serviceId, jobName, stdTime, stdPrice, staffQty, user, flag, status, created, modified, xguid) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s ,%s)" val = (jobId, serviceId, jobName, stdTime, stdPrice, staffQty, user, flag, status, "2020-07-21 08:14:07", "2020-07-21 08:14:07", "") mycursor.execute(sql, val) mydb.commit()
with open('config.json') as data_file: config = json.loads(data_file.read()) dbconfig = config["mydb"] cnx = mysql.connector.connect(**dbconfig) cursor = cnx.cursor() bench = int(config["bench"]) print("Connected, Bench = " + str(bench)) ''' Minimal Example for the article ''' if (bench == 1): for _ in range(noD): data_dep = (fake.name(), fake.ascii_safe_email(), fake.phone_number()) cursor.execute(add_dep, data_dep) cnx.commit() print('Departments Added') cursor.execute("SELECT id FROM Department;") depsIds = cursor.fetchall() depsIds = list(sum(depsIds, ())) depsIds.append(0) # print(depsIds) cursor.execute("SELECT SSN FROM Employee;") print('fetching ssns') ssns = cursor.fetchall() print('ssns fetched') print('convert ssns to list')