예제 #1
0
def fill_persondata():
    db = MySQLdb.connect(host=config.DB_HOST,
                         user=config.DB_USER,
                         passwd=config.DB_PASSWORD,
                         db=config.DB_NAME)
    cursor = db.cursor()

    # Zero client, anon
    cursor.execute(
        """INSERT INTO PersonData (first_name, last_name, birth_date, email, mobile, gender) VALUES (%s, %s, %s, %s,
            %s, %s);""", [
            'anon', 'anon',
            Datetime().date(start=1950, end=2001), None, None, None
        ])
    for _ in range(config.N_PERSONS):
        p = Person('ru')
        cursor.execute(
            """INSERT INTO PersonData (first_name, last_name, birth_date, email, mobile, gender) VALUES (%s, %s, %s,
                %s, %s, %s);""", [
                p.name(),
                p.surname(),
                Datetime().date(start=1950, end=2001),
                p.email(),
                p.telephone('#' * 11),
                'M' if p.gender(iso5218=True) == 1 else 'F'
            ])

    db.commit()
    cursor.close()
    db.close()
예제 #2
0
파일: generate.py 프로젝트: zcribe/Andeas
def generate_menu_items(amount):
    date = Datetime()
    food = Food()
    business = Business()
    text = Text()
    code = Code()
    num = Numbers()

    model = "core.menuitem"
    items = []
    count = 1

    for _ in range(amount):
        fields = {"created": date.datetime(), "modified": date.datetime(), "title": food.dish()}
        fields["slug"] = f'{fields["title"].replace(" ", "-")}-{code.issn()}'
        fields["content"] = text.quote()
        fields["price"] = num.between(1, 100)
        fields["category"] = None
        fields["draft"] = False

        single = {
            "model": model,
            "pk": count,
            "fields": fields
        }

        count += 1
        items.append(single)

    with open("menu.json", "w") as f:
        json.dump(items, f, cls=DjangoJSONEncoder)
예제 #3
0
    def seed():

        # Data
        m_datetime = Datetime()
        person = Person()
        dates_range = dict(start=(datetime.utcnow() -
                                  timedelta(days=366)).year,
                           end=datetime.utcnow().year)

        _role = models.Role.query.filter_by(name="Shopper").first()
        accounts = models.Account.query.filter_by(role=_role).all()

        for account in accounts:
            # only make orders for accounts with at least one campaign
            if not account.campaign:
                continue

            # Generate and save orders
            for _ in range(randint(0, 4)):
                order = models.Order(
                    account=account,
                    campaign=account.campaign,
                    created_at=m_datetime.datetime(start=dates_range["start"],
                                                   end=dates_range["end"]),
                    checkout_fields={
                        "First Name": person.name(),
                        "Last Name": person.last_name()
                    },
                )
                db.session.add(order)

        db.session.commit()
예제 #4
0
파일: generate.py 프로젝트: zcribe/Andeas
def generate_news_items(amount):
    date = Datetime()
    text = Text()
    num = Numbers()
    code = Code()

    model = "core.newsitem"
    items = []
    count = 1

    for _ in range(amount):
        fields = {}
        fields["created"] = date.datetime()
        fields["modified"] = date.datetime()
        fields["title"] = text.title()
        fields["slug"] = slugify(f"{fields['title']}-{code.ean()}")
        fields["content"] = text.text(6)
        fields["draft"] = False
        fields["category"] = random.randint(1, 3)

        single = {
            "model": model,
            "pk": count,
            "fields": fields
        }

        count += 1
        items.append(single)

    with open("news.json", "w") as f:
        json.dump(items, f, cls=DjangoJSONEncoder)
예제 #5
0
 def __init__(self):
     self.person = Person(locale='zh')
     self.address = Address(locale='zh')
     self.code = Code()
     self.business = Business(locale='zh')
     self.text = Text(locale='zh')
     self.datetime = Datetime(locale='zh')
     self.file = File()
     self.path = Path()
     self.internet = Internet()
     self.structure = Structure()
예제 #6
0
def _generate_user_data(locale='ru'):
    person = Person(locale)
    date = Datetime(locale)
    gender = get_random_item(Gender)
    return {
        'password': _generate_password(),
        'first_name': person.surname(gender=gender),
        'last_name': person.name(gender=gender),
        'email': person.email(),
        'date_joined': date.datetime(start=2014, end=2015).replace(tzinfo=utc),
    }
예제 #7
0
def flights():
    return [
        models.Flight.objects.create(
            name=f"Flight_{i}",
            number=Random().custom_code(mask="@@ ####"),
            departure=Address().city(),
            destination=Address().city(),
            scheduled_at=Datetime().datetime(),
            expected_at=Datetime().datetime(),
            duration=Numbers().integer_number(start=1, end=100),
            fare=Numbers().float_number(start=1, end=10000, precision=2),
        ) for i in range(10)
    ]
예제 #8
0
def datetime_el(locale):
    """

    :param locale:
    :return:
    """
    return Datetime(locale)
def run():
    person = Person()
    text = Text()
    internet = Internet()
    dateTime = Datetime()

    for i in range(100):
        User.objects.create(password="******",
                            username=person.username(),
                            first_name=person.name(),
                            last_name=person.last_name(),
                            email=person.email())

    users = User.objects.all()

    for i in range(100):
        Post.objects.create(author=choice(users),
                            link=internet.home_page(),
                            title=text.title(),
                            description=text.text())

    posts = Post.objects.all()

    for i in range(100):
        Comment.objects.create(author=choice(users),
                               post=choice(posts),
                               description=text.text())
예제 #10
0
class CSVData:
    def __init__(self):
        self.person = Person(locale='zh')
        self.address = Address(locale='zh')
        self.code = Code()
        self.business = Business(locale='zh')
        self.text = Text(locale='zh')
        self.datetime = Datetime(locale='zh')
        self.file = File()
        self.path = Path()
        self.internet = Internet()
        self.structure = Structure()

    def mime_data(self):
        # col1 = self.person.full_name()
        col1 = self.person.last_name() + self.person.first_name()
        col2 = self.address.city()
        col3 = self.address.street_name()
        col4 = self.address.calling_code()
        col5 = self.address.longitude()
        col6 = self.code.imei()
        col7 = self.business.company()
        col8 = self.text.hex_color()
        col9 = self.datetime.formatted_datetime()
        col10 = self.datetime.time()

        col11 = self.file.file_name()
        col12 = self.path.dev_dir()
        col13 = self.internet.ip_v4()
        col14 = self.internet.ip_v6()
        col15 = self.internet.home_page()
        col16 = self.internet.stock_image()
        col17 = self.internet.user_agent()
        col18 = self.internet.mac_address()
        col19 = self.person.email()
        col20 = self.person.telephone()

        col21 = self.code.issn()
        col22 = self.person.social_media_profile()
        col23 = self.structure.html()

        line = '\"{0}\", \"{1}\", \"{2}\", \"{3}\", {4}, \"{5}\", \"{6}\" , \"{7}\" , \"{8}\" , \"{9}\" , \"{10}\" , \"{11}\" , \"{12}\" , \"{13}\" , \"{14}\" , \"{15}\" , \"{16}\" , \"{17}\" , \"{18}\" , \"{19}\" , \"{20}\" , \"{21}\" , \"{22}\"\n'.format(
                col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15, col16, col17, col18, col19, col20, col21, col22, col23)

        # line = "mime data"
        # print(line)
        return line
def generate_fake_persons(size):
    """ This function generates a list of dummy persons
        (email, username, fullname, DOB, address and ssn)
    """
    person = Personal('en')
    datetime = Datetime()
    address = Address('en')
    usa_provider = USASpecProvider()

    fake_persons = []
    for _ in range(0, size):
        fake_person = (person.email(), person.username(), \
                       person.full_name(), datetime.date(1970, 2000), \
                       address.address() + " - " + address.state(), usa_provider.ssn())
        fake_persons.append(fake_person)

    return fake_persons
예제 #12
0
def _generate_questionnaire_data(locale='ru') -> dict:
    person = Person(locale)
    rus_spec = RussiaSpecProvider()
    datetime = Datetime(locale)
    g = get_random_item(Gender)
    created = datetime.datetime(start=2015, end=2018)
    return {
        'id': uuid.uuid4(),
        'created': created.replace(tzinfo=utc),
        'updated': created.replace(tzinfo=utc),
        'surname': person.surname(gender=g),
        'first_name': person.name(gender=g),
        'patronymic': rus_spec.patronymic(gender=g),
        'birth_date': datetime.datetime(start=1960, end=1998).date(),
        'phone_num': person.telephone(),
        'pass_ser': rus_spec.passport_series(),
        'pass_num': rus_spec.passport_number(),
        'score': randint(0, 2000),
    }
예제 #13
0
def _generate_offer_data(locale='ru') -> dict:
    text = Text(locale)
    datetime = Datetime(locale)
    typ_choice = [Offer.CONSUMER, Offer.MORTGAGE, Offer.AUTO, Offer.CSMB]
    created = datetime.datetime(start=2015, end=2017)
    _score = randint(0, 1000)

    def rand_dt():
        _dt = datetime.datetime(start=2017, end=2018)
        return _dt.replace(tzinfo=utc)

    return {
        'id': uuid.uuid4(),
        'created': created.replace(tzinfo=utc),
        'updated': created.replace(tzinfo=utc),
        'rotation_start': rand_dt(),
        'rotation_finish': rand_dt(),
        'name': ' '.join(text.words(quantity=10)),
        'typ': choice(typ_choice),
        'min_score': _score,
        'max_score': _score + randint(300, 1000),
    }
예제 #14
0
def create_example_stuff(user):
    example_kit = Kit.objects.create(name='Example kit', user=user)
    without_kit = Kit.objects.get(name='Without kit', user=user)

    for kit in (example_kit, without_kit):
        for medication in EXAMPLE_STUFF[kit.name]:
            Medication.objects.create(
                name=medication.name,
                description=medication.description,
                expiration_date=Datetime().date(start=2015, end=2025),
                # TODO Add 'keep_in_cold'
                kit=kit,
            )
예제 #15
0
    def setUp(self):
        """Generate some fake data."""
        self.app = Flask('test')
        util.init_app(self.app)
        self.app.config['CLASSIC_DATABASE_URI'] = 'sqlite:///test.db'
        self.app.config['CLASSIC_SESSION_HASH'] = 'foohash'

        with self.app.app_context():
            util.create_all()
            with util.transaction() as session:
                person = Person('en')
                net = Internet('en')
                ip_addr = net.ip_v4()
                email = person.email()
                approved = 1
                deleted = 0
                banned = 0
                first_name = person.name()
                last_name = person.surname()
                suffix_name = person.title()
                joined_date = util.epoch(
                    Datetime('en').datetime().replace(tzinfo=EASTERN))
                db_user = models.DBUser(
                    first_name=first_name,
                    last_name=last_name,
                    suffix_name=suffix_name,
                    share_first_name=1,
                    share_last_name=1,
                    email=email,
                    flag_approved=approved,
                    flag_deleted=deleted,
                    flag_banned=banned,
                    flag_edit_users=0,
                    flag_edit_system=0,
                    flag_email_verified=1,
                    share_email=8,
                    email_bouncing=0,
                    policy_class=2,  # Public user. TODO: consider admin.
                    joined_date=joined_date,
                    joined_ip_num=ip_addr,
                    joined_remote_host=ip_addr)
                session.add(db_user)

                self.user = domain.User(user_id=str(db_user.user_id),
                                        username='******',
                                        email=db_user.email,
                                        name=domain.UserFullName(
                                            forename=db_user.first_name,
                                            surname=db_user.last_name,
                                            suffix=db_user.suffix_name))
예제 #16
0
def generate_random_data():
    p = Person()
    a = Address()

    return {
        "name": p.full_name(),
        "email": p.email(),
        "nationality": p.nationality(),
        "occupation": p.occupation(),
        "password": p.password(),
        "phone": p.telephone(),
        "address": a.address(),
        "city": a.city(),
        "street_no": a.street_number(),
        "created": Datetime().date().isoformat(),
    }
예제 #17
0
class Transaction(Node):
    _datetime = Datetime()
    _business = Business()

    def __init__(self, sourceId: int, targetId: int):
        self.__type = "Transaction"
        self.source = sourceId
        self.target = targetId
        self.date = self._datetime.date(start=2000, end=2020)
        self.time = self._datetime.time()

        self.amount = random.randint(1, 10000)
        if random.random() < 0.8:
            self.currency = self._business.currency_iso_code()
        else:
            self.currency = None
예제 #18
0
    def bootstrap(count):
        from mimesis import Business, Datetime

        for _ in range(count):
            title = str(_)
            city = choice(CITIES)
            category = choice(CATEGORIES)
            company = Business('en').company()
            date_published = datetime.strptime(
                Datetime('uk').date(start=2013, end=2017, fmt=''), "%d.%m.%Y")
            vacancy = {
                "title": title,
                "city": city,
                "company": company,
                "category": category,
                "date_published": date_published
            }
            db.vacancy_collection.insert(vacancy)
예제 #19
0
def fill_mercants():
    db = MySQLdb.connect(host=config.DB_HOST,
                         user=config.DB_USER,
                         passwd=config.DB_PASSWORD,
                         db=config.DB_NAME)
    cursor = db.cursor()

    for i in config.MERCHANT_IDS:
        cursor.execute(
            """
            INSERT INTO Merchant (info_id, added_at, access_level)
            VALUES (%s, %s, %s);
        """, [i, Datetime().datetime(start=2018, end=2018),
              r.randint(0, 3)])

    db.commit()
    cursor.close()
    db.close()
예제 #20
0
def generate_medicines(kit_name: str, quantity: int = 15) -> None:
    kit = Kit.objects.filter(name=kit_name).first()

    if not kit:
        user = get_user_model().objects.create(username=Person().username())
        kit = Kit(name=kit_name, user=user)
        kit.save()

    print(f'Creating {quantity} fake medicines')

    for _ in range(quantity):
        Medication.objects.create(
            name=Food().fruit(),
            description=Text().title(),
            expiration_date=Datetime().date(start=2015, end=2025),
            kit=kit,
        )

    return None
예제 #21
0
def generate_drugs(kit_name: str, quantity: int = 15) -> None:
    kit = Kit.objects.filter(name=kit_name).first()

    if not kit:
        kit = Kit(name=kit_name)
        kit.save()

    for _ in range(quantity):
        drug = Drug(
            name=Food().fruit(),
            description=Text().title(),
            expiration_date=Datetime().date(start=2015, end=2025),
            kit=kit,
        )

        drug.save()

    print(f'Created {quantity} fake drugs')

    return None
예제 #22
0
    def test_invalidated_autoendorsements(self):
        """The user has two autoendorsements that have been invalidated."""
        with self.app.app_context():
            with util.transaction() as session:
                issued_when = util.epoch(
                    Datetime('en').datetime().replace(tzinfo=EASTERN))
                session.add(
                    models.DBEndorsement(endorsee_id=self.user.user_id,
                                         archive='astro-ph',
                                         subject_class='CO',
                                         flag_valid=0,
                                         endorsement_type='auto',
                                         point_value=10,
                                         issued_when=issued_when))
                session.add(
                    models.DBEndorsement(endorsee_id=self.user.user_id,
                                         archive='astro-ph',
                                         subject_class='CO',
                                         flag_valid=0,
                                         endorsement_type='auto',
                                         point_value=10,
                                         issued_when=issued_when))
                session.add(
                    models.DBEndorsement(endorsee_id=self.user.user_id,
                                         archive='astro-ph',
                                         subject_class='CO',
                                         flag_valid=1,
                                         endorsement_type='auto',
                                         point_value=10,
                                         issued_when=issued_when))
                session.add(
                    models.DBEndorsement(endorsee_id=self.user.user_id,
                                         archive='astro-ph',
                                         subject_class='CO',
                                         flag_valid=1,
                                         endorsement_type='user',
                                         point_value=10,
                                         issued_when=issued_when))

            result = endorsements.invalidated_autoendorsements(self.user)
        self.assertEqual(len(result), 2, "Two revoked endorsements are loaded")
class Transaction(Node):
    _datetime = Datetime()
    _numbers = Numbers()
    _text = Text()
    _business = Business()

    def __init__(self, sourceId, targetId):
        self.__type = 'Transaction'
        self.id = uuid4()
        self.source = sourceId
        self.target = targetId
        self.date = self._datetime.date(start=2015, end=2019)
        self.time = self._datetime.time()

        if random() < 0.05:
            self.amount = self._numbers.between(100000, 1000000)
        self.amount = npr.exponential(10)

        if random() < 0.15:
            self.currency = self._business.currency_iso_code()
        else:
            self.currency = None
예제 #24
0
def fill_orders():
    db = MySQLdb.connect(host=config.DB_HOST,
                         user=config.DB_USER,
                         passwd=config.DB_PASSWORD,
                         db=config.DB_NAME)
    cursor = db.cursor()

    for i in range(config.N_ORDERS):
        user_id = r.choice(range(1, len(config.USER_IDS)))
        cursor.execute(
            """
            INSERT INTO `Order` (merchant_id, completed_at, user_id, total_sum)
            VALUES (%s, %s, %s, %s);
        """, [
                r.choice(config.MERCHANT_IDS[:-1]),
                Datetime().datetime(start=2018, end=2018), user_id,
                r.randint(200, 600)
            ])

    db.commit()
    cursor.close()
    db.close()
예제 #25
0
def users(count: int = 500) -> List[models.User]:
    """Generate a bunch of random users."""
    _users = []
    for i in range(count):
        locale = _get_locale()
        person = Person(locale)
        net = Internet(locale)
        ip_addr = net.ip_v4()
        _users.append(
            models.User(
                first_name=person.name(),
                last_name=person.surname(),
                suffix_name=person.title(),
                share_first_name=1,
                share_last_name=1,
                email=person.email(),
                share_email=8,
                email_bouncing=0,
                policy_class=2,  # Public user.
                joined_date=_epoch(Datetime(locale).datetime()),
                joined_ip_num=ip_addr,
                joined_remote_host=ip_addr))
    return _users
예제 #26
0
from models import *
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

import random
from mimesis import Person
from mimesis import Address
from mimesis import Datetime
from mimesis.enums import Gender

dateTime = Datetime('ru')
address = Address('ru')
person = Person('ru')

count_org = 1
count_bran = 3
count_dep = 10
count_peop = 150

positions = [
    'position0', 'position1', 'position2', 'position3', 'position4',
    'position5'
]
gender = [Gender.MALE, Gender.FEMALE]


def gen_number():
    result = str(random.randrange(100, 999)) + '-' + str(
        random.randrange(10, 99)) + '-' + str(random.randrange(10, 99))
    return result
예제 #27
0
파일: values.py 프로젝트: xnuinside/fakeme
# todo: need to add hook with preset data if
#  in rules.json exists generators based on data from 'data' folder
data_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), "data")


class DataObject:
    pass


languages = ["zh", "ru", "en", "es", "ar", "fr"]

fake = Generic()
text = Text()
person = Person()
date = Datetime()
address = Address()


def current_time():
    tz = pytz.timezone(config.cfg.timezone)
    return datetime.datetime.now(tz)


last_time = None
countries = DataObject()


def countries_init():
    """
        method to read countries and load data for generator
예제 #28
0
 def d2(self, seed):
     return Datetime(seed=seed)
예제 #29
0
    def setUp(self):
        """Generate some fake data."""
        self.app = Flask('test')
        util.init_app(self.app)
        self.app.config['CLASSIC_DATABASE_URI'] = 'sqlite:///test.db'
        self.app.config['CLASSIC_SESSION_HASH'] = 'foohash'

        with self.app.app_context():
            util.create_all()
            with util.transaction() as session:
                person = Person('en')
                net = Internet('en')
                ip_addr = net.ip_v4()
                email = "*****@*****.**"
                approved = 1
                deleted = 0
                banned = 0
                first_name = person.name()
                last_name = person.surname()
                suffix_name = person.title()
                joined_date = util.epoch(
                    Datetime('en').datetime().replace(tzinfo=EASTERN))
                db_user = models.DBUser(
                    first_name=first_name,
                    last_name=last_name,
                    suffix_name=suffix_name,
                    share_first_name=1,
                    share_last_name=1,
                    email=email,
                    flag_approved=approved,
                    flag_deleted=deleted,
                    flag_banned=banned,
                    flag_edit_users=0,
                    flag_edit_system=0,
                    flag_email_verified=1,
                    share_email=8,
                    email_bouncing=0,
                    policy_class=2,  # Public user. TODO: consider admin.
                    joined_date=joined_date,
                    joined_ip_num=ip_addr,
                    joined_remote_host=ip_addr)
                session.add(db_user)

                self.user = domain.User(user_id=str(db_user.user_id),
                                        username='******',
                                        email=db_user.email,
                                        name=domain.UserFullName(
                                            forename=db_user.first_name,
                                            surname=db_user.last_name,
                                            suffix=db_user.suffix_name))

            ok_patterns = ['%w3.org', '%aaas.org', '%agu.org', '%ams.org']
            bad_patterns = ['%.com', '%.net', '%.biz.%']

            with util.transaction() as session:
                for pattern in ok_patterns:
                    session.add(models.DBEmailWhitelist(pattern=str(pattern)))
                for pattern in bad_patterns:
                    session.add(models.DBEmailBlacklist(pattern=str(pattern)))

                session.add(
                    models.DBEndorsementDomain(
                        endorsement_domain='test_domain',
                        endorse_all='n',
                        mods_endorse_all='n',
                        endorse_email='y',
                        papers_to_endorse=3))

                for category, definition in taxonomy.CATEGORIES_ACTIVE.items():
                    if '.' in category:
                        archive, subject_class = category.split('.', 1)
                    else:
                        archive, subject_class = category, ''
                    session.add(
                        models.DBCategory(archive=archive,
                                          subject_class=subject_class,
                                          definitive=1,
                                          active=1,
                                          endorsement_domain='test_domain'))
예제 #30
0
from mimesis import Person
from mimesis import Address
from mimesis import Datetime
from mimesis import random
from mimesis.enums import Gender
import random

person = Person('ru')
address = Address('ru')
datetime = Datetime()
file = open("clients.txt", 'w')

list_rating = []
list_cities = ['Истра', 'Правдинск', 'Соликамск', 'Железнодорожный', 'Углич', 'Белёв', 'Тайга', 'Красноармейск', 'Володарск', 'Гаджиево', 'Яровое', 'Багратионовск', 'Среднеуральск', 'Невельск', 'Питкяранта', 'Темников', 'Калач-на-Дону', 'Сергиев Посад', 'Бугуруслан', 'Калининград', 'Лесной', 'Ишимбай', 'Жирновск', 'Нефтекамск', 'Серпухов', 'Балахна', 'Железногорск', 'Тюкалинск', 'Воронеж', 'Черемхово', 'Каменск-Уральский', 'Эртиль', 'Алагир', 'Новокубанск', 'Избербаш', 'Гуково', 'Сокол', 'Ельня', 'Баймак', 'Ступино', 'Высоцк', 'Коломна', 'Сосновоборск', 'Суздаль', 'Сковородино', 'Оханск', 'Малгобек', 'Спасск-Дальний', 'Каменск-Шахтинский', 'Юхнов']
list_date = []
list_phones = []
list_email = []
list_seniority = []
list_shops = []

for i in range(10000):
    list_date.append(datetime.date(start = 1960, end = 2005))
    list_phones.append(person.telephone())
    list_email.append(person.email())
    list_shops.append(random.randint(1, 1000))

for i in range(10000):
    list_seniority.append(random.randint(0, 10))

for i in range(1, 10001):
    file.write("%d|%s|%s|г.%s, %s|%s|%s\n" %(i, person.full_name(), list_date[i-1], random.choice(list_cities), address.address(),