def insert_random_client(cursor): global clients_counter, client_fields_counter clients_counter += 1 first_name = faker.first_name() last_name = faker.last_name() phone = faker.random_number(9, fix_len=True) email = '{}.{}@gmail.com'.format(first_name, last_name) conference = faker.boolean() pesel = faker.random_number(11, fix_len=True) address = faker.address() cursor.execute('INSERT INTO clients ' '(id, first_name, last_name, phone, email, conference) ' 'VALUES ({}, \'{}\', \'{}\', \'{}\', \'{}\', {})'.format( clients_counter, first_name, last_name, phone, email, conference)) client_fields_counter += 1 cursor.execute('INSERT INTO client_fields ' '(id, client_id, type, value) ' 'VALUES ({}, {}, \'{}\', \'{}\')'.format( client_fields_counter, clients_counter, 'PESEL', pesel)) client_fields_counter += 1 cursor.execute('INSERT INTO client_fields ' '(id, client_id, type, value) ' 'VALUES ({}, {}, \'{}\', \'{}\')'.format( client_fields_counter, clients_counter, 'ADDRESS', address))
class AgenteEnContactoFactory(DjangoModelFactory): class Meta: model = AgenteEnContacto agente_id = lazy_attribute(lambda a: faker.random_number(7)) campana_id = lazy_attribute(lambda a: faker.random_number(7)) contacto_id = lazy_attribute(lambda a: faker.random_number(7)) datos_contacto = lazy_attribute(lambda a: faker.random_number(10)) telefono_contacto = lazy_attribute(lambda a: faker.random_number(10)) estado = AgenteEnContacto.ESTADO_INICIAL
class ContactoFactory(DjangoModelFactory): class Meta: model = Contacto telefono = lazy_attribute(lambda a: str(faker.random_number(10))) id_externo = None datos = lazy_attribute(lambda a: '["{0}", "{1}", "{2}", "{3}", "{4}"]'.format( faker.name(), faker.name(), faker.random_number(7), faker.phone_number(), faker.phone_number())) bd_contacto = SubFactory(BaseDatosContactoFactory)
class RespuestaFormularioGestionFactory(DjangoModelFactory): class Meta: model = RespuestaFormularioGestion calificacion = SubFactory(CalificacionClienteFactory) metadata = lazy_attribute( lambda a: '["{0}", "{1}", "{2}", "{3}", "{4}"]'.format( faker.name(), faker.name(), faker.random_number(7), str(faker.random_number(10, fix_len=True)), str(faker.random_number(10, fix_len=True)) ) )
class LlamadaLogFactory(DjangoModelFactory): class Meta: model = LlamadaLog time = lazy_attribute(lambda a: timezone.now()) callid = lazy_attribute(lambda a: faker.ean8()) campana_id = Sequence(lambda n: n) tipo_campana = lazy_attribute(lambda a: faker.random_int(1, 4)) agente_id = Sequence(lambda n: n) event = Sequence(lambda n: "evento_{0}".format(n)) numero_marcado = lazy_attribute(lambda a: faker.phone_number()) contacto_id = Sequence(lambda n: n) bridge_wait_time = lazy_attribute(lambda a: faker.random_number(3)) duracion_llamada = lazy_attribute(lambda a: faker.random_number(3)) archivo_grabacion = lazy_attribute(lambda a: faker.text(15))
class QueueFactory(DjangoModelFactory): class Meta: model = Queue campana = SubFactory(CampanaFactory) name = lazy_attribute(lambda a: "queue_{0}".format(uuid4())) maxlen = lazy_attribute(lambda a: faker.random_number(5)) wrapuptime = lazy_attribute(lambda a: faker.random_number(5)) servicelevel = lazy_attribute(lambda a: faker.random_number(5)) strategy = 'rrmemory' eventmemberstatus = True eventwhencalled = True weight = lazy_attribute(lambda a: faker.random_number(5)) ringinuse = True setinterfacevar = True wait = lazy_attribute(lambda a: faker.random_number(5))
class BlackListFactory(DjangoModelFactory): class Meta: model = Blacklist nombre = lazy_attribute(lambda a: faker.text(15)) fecha_alta = lazy_attribute(lambda a: timezone.now()) nombre_archivo_importacion = Sequence(lambda n: "file_{0}.dat".format(n)) cantidad_contactos = lazy_attribute(lambda a: faker.random_number(2))
class QueueMemberFactory(DjangoModelFactory): class Meta: model = QueueMember member = SubFactory(AgenteProfileFactory) queue_name = SubFactory(QueueFactory) membername = Sequence(lambda n: "membername_{0}.dat".format(n)) interface = Sequence(lambda n: "interface_{0}.dat".format(n)) penalty = lazy_attribute(lambda a: faker.random_int(0, 9)) paused = lazy_attribute(lambda a: faker.random_number(2)) id_campana = lazy_attribute(lambda a: "{0}_campana".format(uuid4()))
class GrabacionFactory(DjangoModelFactory): class Meta: model = Grabacion fecha = lazy_attribute(lambda a: timezone.now()) tipo_llamada = lazy_attribute(lambda a: faker.random_int(1, 3)) id_cliente = lazy_attribute(lambda a: format(uuid4().int)) tel_cliente = lazy_attribute(lambda a: str(faker.random_number(7))) grabacion = lazy_attribute(lambda a: faker.text(max_nb_chars=5)) agente = SubFactory(AgenteProfileFactory) campana = SubFactory(CampanaFactory) callid = lazy_attribute(lambda a: format(uuid4().int))
def insert_random_price(cursor, period_id, room_id): global prices_counter prices_counter += 1 start_date, end_date = exact_period(period_id, price_duration) value = '{}0.00'.format(faker.random_number(3)) cursor.execute('INSERT INTO prices ' '(id, start_date, end_date, value) ' 'VALUES ({}, \'{}\', \'{}\', \'{}\')'.format( prices_counter, start_date, end_date, value)) cursor.execute('INSERT INTO rooms_prices ' '(price_id, room_id) ' 'VALUES ({}, {})'.format(prices_counter, room_id))
def insert_random_discount(cursor, period_id, type_id, type): global discounts_counter discounts_counter += 1 start_date, end_date = exact_period(period_id, discount_duration) percentage = faker.random_number(2) % 50 cursor.execute('INSERT INTO discounts ' '(id, start_date, end_date, percentage) ' 'VALUES ({}, \'{}\', \'{}\', {})'.format( discounts_counter, start_date, end_date, percentage)) cursor.execute('INSERT INTO {}s_discounts ' '(discount_id, {}_id) ' 'VALUES ({}, {})'.format(type, type, discounts_counter, type_id))
def insert_random_hotel(cursor): global hotels_counter hotels_counter += 1 hotel = { 'id': hotels_counter, 'name': faker.color_name(), 'location': faker.country(), 'img_path': faker.random.choice(hotel_img_paths), 'stars_count': faker.random_number() % 5 + 1, 'category_id': faker.random.choice(list(ids_categories.keys())), } cursor.execute( 'INSERT INTO hotels ( id , name , location , img_path , stars_count , category_id ) ' 'VALUES ({id}, \'{name}\', \'{location}\', \'{img_path}\', {stars_count}, {category_id})' .format(**hotel))
def insert_random_room(cursor, floor, number): global rooms_counter rooms_counter += 1 room = { 'id': rooms_counter, 'floor': floor, 'number': number, 'capacity': faker.random_number() % 5 + 1, 'premium': faker.boolean(), 'img_path': faker.random.choice(room_img_paths), 'building_id': buildings_counter } cursor.execute( 'INSERT INTO rooms ( id , floor , number , capacity , premium , img_path , building_id ) ' 'VALUES ({id}, {floor}, {number}, {capacity}, {premium}, \'{img_path}\', {building_id})' .format(**room))
class CampanaFactory(DjangoModelFactory): class Meta: model = Campana nombre = lazy_attribute(lambda a: "campana_{0}".format(uuid4())) estado = lazy_attribute(lambda a: faker.random_digit_not_null()) fecha_inicio = lazy_attribute(lambda a: timezone.now()) fecha_fin = lazy_attribute(lambda a: a.fecha_inicio) bd_contacto = SubFactory(BaseDatosContactoFactory) tipo_interaccion = Campana.FORMULARIO campaign_id_wombat = lazy_attribute(lambda a: faker.random_number(7)) type = lazy_attribute(lambda a: faker.random_int(1, 3)) sitio_externo = None reported_by = SubFactory(UserFactory) nombre_template = lazy_attribute(lambda a: faker.text(max_nb_chars=6)) @post_generation def supervisors(self, create, extracted, **kwargs): if not create: return if extracted: for supervisor in extracted: self.supervisors.add(supervisor)
def insert_random_reservation(cursor, period_id, room_id, client_id): global reservations_counter reservations_counter += 1 start_date, end_date = exact_period(period_id, reservation_duration) cost = '{}0.00'.format(faker.random_number(3) * 10) if start_date < end_date < datetime.today(): state = 'FINISHED' elif start_date < datetime.today() < end_date: state = 'IN_PROGRESS' else: state = faker.random.choice(['MADE', 'PAID']) cursor.execute( 'INSERT INTO reservations ' '(id, check_in_date, check_out_date, cost, state, client_id) ' 'VALUES ({}, \'{}\', \'{}\', {}, \'{}\', {})'.format( reservations_counter, start_date, end_date, cost, state, client_id)) cursor.execute('INSERT INTO rooms_reservations ' '(room_id, reservation_id) ' 'VALUES ({}, {})'.format(room_id, reservations_counter))
class GrupoFactory(DjangoModelFactory): class Meta: model = Grupo nombre = Sequence(lambda n: "grupo_{0}.dat".format(n)) auto_unpause = lazy_attribute(lambda a: faker.random_number(2))