Ejemplo n.º 1
0
    def test(self):
        filename = '/tmp/_test_utenabi_AdaptadorMultiprocesoTest.csv'
        multigen = MultiGenerador()
        multigen.agregar_generador(GeneradorDeEntero(0, 9999999, seed=0))
        multigen.agregar_generador(GeneradorDeEntero(0, 9999999, seed=1))
        multigen.agregar_generador(GeneradorDeEntero(0, 9999999, seed=2))
        generador_csv = ArchivoCSV(multigen, ("num1", "num2", "num3"))

        adaptador_multiproceso = AdaptadorMultiproceso(
            generador_csv,
            2
        )
        adaptador_multiproceso.generar_csv(filename, 1000)
        adaptador_multiproceso.close()

        lineas_totales = 0
        lineas_iguales = 0
        
        with open(filename, 'r') as thefile:
            csv_reader = csv.reader(thefile)
            csv_reader.next()
            for values in csv_reader:
                lineas_totales += 1
                if values[0] == values[1] and values[1] == values[2]:
                    lineas_iguales += 1

        # 100 es 10% de los 1000 que generamos...
        # Suponemos `falla` si mas del 10% de las lineas generadas
        #  poseen los 3 valores iguales
        self.assertTrue(lineas_iguales < 100,
            "{0} de {1} lineas generadas contienene los mismos valores para las distintas columnas".format(
                lineas_iguales, lineas_totales))
Ejemplo n.º 2
0
    def test_todos(self):
        metagen = MultiGenerador()
        todos_los_generadores = obtener_instancias_de_generadores()
        for gen in todos_los_generadores:
            metagen.agregar_generador(gen)

        undato = metagen.generar()
        self.assertTrue(len(undato) >= len(todos_los_generadores))
Ejemplo n.º 3
0
    def test(self):
        metagen = MultiGenerador()
        metagen.agregar_generador(GeneradorDeNroDocumento())
        metagen.agregar_generador(GeneradorDeBarrioCiudadProvincia())
        metagen.agregar_generador(GeneradorDeNroDocumento())

        undato = metagen.generar()
        print undato
        self.assertEqual(len(undato), 5)
        int(undato[0]) # dni deberia ser convertible a `int`
        int(undato[4]) # dni deberia ser convertible a `int`
Ejemplo n.º 4
0
    def test_reseed(self):
        metagen = MultiGenerador()
        todos_los_generadores = obtener_instancias_de_generadores()
        for gen in todos_los_generadores:
            metagen.agregar_generador(gen)

        metagen = metagen.reseed(GeneradorDeEntero(0, 9, seed=0))
        val1 = metagen.generar()
        val2 = metagen.generar()
        self.assertNotEqual(val1, val2)

        reseeded = metagen.reseed(GeneradorDeEntero(0, 9, seed=0))
        val3 = reseeded.generar()
        val4 = reseeded.generar()
        self.assertEqual(val1, val3)
        self.assertEqual(val2, val4)
Ejemplo n.º 5
0
    def test(self):
        filename = '/tmp/_test_utenabi_GeneracionDeUnicosTest_test.csv'

        # 1er intento -> deberia funcionar si generamos 6 elementos
        # GeneradorDeEntero / entre 0 y 5 / UNIQUE / 1000 intentos
        multigen = MultiGenerador()
        multigen.agregar_generador(GeneradorDeEntero(0, 5, unique=True,
            max_intentos=1000, seed=0))
        generador_csv = ArchivoCSV(multigen, ("numero", ))
        generador_csv.generar_csv(filename, 6)

        # 2do intento -> deberia FALLAR si generamos MAS de 6 elementos
        multigen = MultiGenerador()
        multigen.agregar_generador(GeneradorDeEntero(0, 5, unique=True,
            max_intentos=1000, seed=0))
        generador_csv = ArchivoCSV(multigen, ("numero", ))
        # generador_csv.generar_csv(filename, 7)
        self.assertRaises(NoSePudoGenerarRandomUnico, generador_csv.generar_csv, filename, 7)