class AnnouncementFactory(DjangoModelFactory): class Meta: model = Announcement # header = Faker('text').generate(extra_kwargs={'max_nb_chars': 50}) header = lazy_attribute(lambda x: faker.text(max_nb_chars=50)) # body_text = Faker('text').generate(extra_kwargs={'max_nb_chars': 500}) body_text = lazy_attribute(lambda x: faker.text(max_nb_chars=500))
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: faker.text(5)) 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))
class AuditoriaCalificacionFactory(DjangoModelFactory): class Meta: model = AuditoriaCalificacion resultado = AuditoriaCalificacion.APROBADA calificacion = SubFactory(CalificacionClienteFactory) observaciones = lazy_attribute(lambda a: faker.text(15))
def seed_products(): products_count = Product.objects.count() products_to_seed = 35 sys.stdout.write('[+] Seeding %d products\n' % (products_to_seed - products_count)) dir = os.path.join(os.getcwd(), 'static', 'images', 'products') if not os.path.exists(dir): os.makedirs(dir) for i in range(products_count, products_to_seed): name = faker.sentence() # slug = faker.slug() # description = faker.paragraph(nb_sentences=3, variable_nb_sentences=10) description = faker.text() tags = Tag.objects.get_random_tag() categories = Category.objects.gent_random_category() price = round(random.uniform(150, 3000), 2) start_date = datetime.date(year=2016, month=1, day=1) random_date = faker.date_between(start_date=start_date, end_date='+4y') publish_on = random_date # publish_on = faker.date_time_between('-3y', '+1y') product = Product.objects.create(name=name, description=description, price=price, publish_on=publish_on, stock=faker.random_int(min=0, max=400)) product.tags.add(tags) product.categories.add(categories) file_name = "".join(random.choice(ascii_lowercase) for i in range(16)) file_path = os.path.join(dir, file_name) ProductImage.objects.create(file_name=file_name, original_name='adults.png', file_length=faker.random.randint(400, 10000), product=product, file_path=file_path.replace(os.getcwd(), '').replace('\\', '/'))
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))
def issue_factory(): return { "title": faker.sentence(), "body": faker.text(), "milestone": random.randint(1, 5), "labels": faker.words(), "assignees": [faker.user_name() for _ in range(3)] }
class OpcionCalificacionFactory(DjangoModelFactory): class Meta: model = OpcionCalificacion campana = SubFactory(CampanaFactory) tipo = lazy_attribute(lambda a: faker.random_int(0, 1)) nombre = lazy_attribute(lambda a: faker.text(15)) formulario = SubFactory(FormularioFactory)
class SitioExternoFactory(DjangoModelFactory): class Meta: model = SitioExterno nombre = lazy_attribute(lambda a: faker.text(15)) url = lazy_attribute(lambda a: "http://{0}.com".format(a.nombre.replace(" ", "_"))) disparador = SitioExterno.BOTON metodo = SitioExterno.GET formato = None objetivo = lazy_attribute(lambda a: faker.random_int(1, 2))
class CalificacionClienteFactory(DjangoModelFactory): class Meta: model = CalificacionCliente callid = lazy_attribute(lambda a: faker.ean8()) opcion_calificacion = SubFactory(OpcionCalificacionFactory) contacto = SubFactory(ContactoFactory) agente = SubFactory(AgenteProfileFactory) fecha = lazy_attribute(lambda a: timezone.now()) observaciones = lazy_attribute(lambda a: faker.text(15))
class AgendaContactoFactory(DjangoModelFactory): agente = SubFactory(AgenteProfileFactory) campana = SubFactory(CampanaFactory) contacto = SubFactory(ContactoFactory) observaciones = lazy_attribute(lambda a: faker.text(15)) tipo_agenda = AgendaContacto.TYPE_PERSONAL fecha = lazy_attribute(lambda a: timezone.now().date()) hora = lazy_attribute(lambda a: timezone.now().time()) class Meta: model = AgendaContacto
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))
def test_single_char_key_search_with_random_length_encrypted_string_breaks_properly( self): from utils import single_char_key_search from encryption import repeating_key_xor import faker faker = faker.Faker() random_base_string = faker.text().replace('\n', '') encrypted_base_string = repeating_key_xor(faker.word()[0], random_base_string) actual_answer = single_char_key_search( encrypted_base_string)[0].decode() self.assertEqual(random_base_string, actual_answer)
def seed_articles(): roles = db.session.query(Role.id).filter( or_(Role.name == 'ROLE_ADMIN', Role.name == 'ROLE_AUTHOR')).all() # Not working roles = db.session.query(Role.id).filter(Role.name == v for v in ('ROLE_ADMIN', 'ROLE_AUTHOR')).all() roles = [role[0] for role in roles] articles_count = db.session.query(func.count(Article.id)).all()[0][0] articles_to_seed = 23 articles_to_seed -= articles_count sys.stdout.write('[+] Seeding %d articles\n' % articles_to_seed) author_admin_ids = [ user[0] for user in db.session.query(User.id).filter( User.roles.any(UserRole.role_id.in_(roles))).all() ] tag_ids = [tag[0] for tag in db.session.query(Tag.id).all()] category_ids = [ category[0] for category in db.session.query(Category.id).all() ] for i in range(articles_count, articles_to_seed): title = faker.sentence() description = '\n'.join(faker.sentences(2)) body = faker.text() user_id = random.choice(author_admin_ids) start_date = datetime.date(year=2017, month=1, day=1) random_date = faker.date_between(start_date=start_date, end_date='+4y') publish_on = random_date a = Article(title=title, body=body, description=description, user_id=user_id, publish_on=publish_on) a.tags.append(db.session.query(Tag).order_by(func.random()).first()) for i in range(0, random.randint(1, 2)): a.tags.append(random.choice(tags)) for i in range(0, random.randint(1, 2)): a.categories.append(random.choice(categories)) db.session.add(a) db.session.commit()
class EmailFactory(factory.django.DjangoModelFactory): body = factory.LazyFunction(lambda: faker.text(max_nb_chars=500)) subject = factory.Faker("sentence", nb_words=5, variable_nb_words=True) to = factory.Sequence(lambda x: [faker.free_email() for _ in range(randint(1, 4))]) cc = factory.Sequence(lambda x: [faker.free_email() for _ in range(randint(1, 4))]) bcc = factory.Sequence(lambda x: [faker.free_email() for _ in range(randint(1, 4))]) sender = factory.Faker('free_email') class Meta: model = Email @factory.post_generation def attachments(self, create, extracted, **kwargs): if not create: return attachments = extracted or [EmailAttachmentFactory(email=self)] for attachment in attachments: self.attachments.add(attachment)
def seed_articles(): articles_count = Article.objects.count() articles_to_seed = 23 sys.stdout.write('[+] Seeding %d articles\n' % (articles_to_seed - articles_count)) for i in range(articles_count, articles_to_seed): title = faker.sentence() description = '\n'.join(faker.sentences(2)) body = faker.text() user = AppUser.objects.order_by('?').first() tag = Tag.objects.get_random_tag() category = Category.objects.get_random_category() start_date = datetime.date(year=2017, month=1, day=1) random_date = faker.date_between(start_date=start_date, end_date='+4y') publish_on = random_date a = Article.objects.create(title=title, body=body, description=description, user=user, publish_on=publish_on) a.tags.add(tag) a.categories.add(category)
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)
import faker from .models import Category, Product text = faker.text() def create(): daljer, _ = Category.objects.get_or_create( name='Daljer', description='Her er masse daljer', pk=2 ) kompendier, _ = Category.objects.get_or_create( name='Kompendier', description='Her er masse kompendier', pk=3 ) for i in range(1, 6): name = 'Dalje %d' dalje, _ = Product.objects.get_or_create( name=(name % i), category=daljer, pk=i, description=text ) dalje.photo.name = 'product_photo/medal.jpg' dalje.save()
def content(obj, n): faker = Faker._get_faker(locale='la') policy_date = faker.date( pattern='%Y-%m-%d') if obj.from_date is None else obj.from_date policy_text = faker.text() return f"{{# {policy_date} #}}<p>Policy {n:03d}</p>\n{policy_text}"
class NombreCalificacionFactory(DjangoModelFactory): class Meta: model = NombreCalificacion nombre = lazy_attribute( lambda a: "nombre_calificacion_{0}".format(faker.text(10)))
product = Product.objects.order_by('?').only('id').first() order = Order.objects.get_order_not_containing_product(product) if order is None: # all orders have this product already continue OrderItem.objects.create( name=product.name, slug=product.slug, user_id=order.user_id, order_id=order.id, product=product, quantity=faker.random_int(min=1, max=7), price=min(5, product.price + (round(random.uniform(-20.0, 20.0), 2))), # random price near the usual product price # user=AppUser.objects.order_by('?').first()) ) if __name__ == '__main__': seed_categories() seed_tags() seed_admin() seed_users() seed_products() seed_comments() seed_addresses() seed_orders() print("done") article = faker.text(max_nb_chars=20)
class GrabacionMarcaFactory(DjangoModelFactory): class Meta: model = GrabacionMarca callid = lazy_attribute(lambda a: format(uuid4().int)) descripcion = lazy_attribute(lambda a: faker.text(5))