示例#1
0
    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}')
示例#2
0
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'
示例#3
0
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())
示例#4
0
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()
示例#5
0
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'
示例#6
0
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'
示例#7
0
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'
示例#8
0
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')
示例#9
0
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)
示例#10
0
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()
示例#11
0
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'
示例#12
0
    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)
示例#13
0
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
示例#14
0
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")
示例#16
0
    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)
示例#17
0
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()
示例#18
0
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())
示例#20
0
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()
示例#21
0
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)
示例#24
0
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)
示例#26
0
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())
示例#27
0
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"),
            ),
        ),
    )
示例#28
0
    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()
示例#29
0
    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"])
示例#30
0
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))
示例#31
0
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)
示例#32
0
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)
示例#33
0
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())
示例#34
0
 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()
示例#35
0
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')