def test_generate_with_quantity(self):
     expected_quantity = 3
     expected_data = [
         generators.generate_to_dict(CityFactory)
         for i in range(expected_quantity)
     ]
     result = generators.generate_to_json(CityFactory, quantity=expected_quantity)
     self.assertEqual(result, expected_data)
    def test_generate(self, mock_generate):
        factories = [CityFactory]
        factories_data = [generate_to_json(f) for f in factories]
        mock_generate.return_value = factories_data
        tested_data = json.loads(self.cmd.generate(factories))

        for data in tested_data:
            self.assertEqual(tested_data[0]['model'],
                             CityFactory._meta.model._meta.label_lower)
            self.assertEqual(tested_data[0]['fields'], factories_data[0])
 def test_run_without_options(self, mock_generate):
     expected_fields = generate_to_json(PersonFactory)
     expected_model = 'testapp.person'
     expected_json = json.dumps([{
         'model': expected_model,
         'fields': expected_fields[0]
     }],
                                cls=DjangoFileJsonEncoder)
     mock_generate.return_value = expected_fields
     result_json = self.call_command('testapp.PersonFactory')
     self.assertEqual(result_json, expected_json + '\n')
    def test_encode_files(self):
        encoder = DjangoFileJsonEncoder()
        json_data = generate_to_json(PersonFactory)
        testeded_file_path = json.dumps(
            os.path.realpath(json_data[0]['passport_scan'].name))
        testeded_image_path = json.dumps(
            os.path.realpath(json_data[0]['photo'].name))
        expected_file_path = encoder.encode(json_data[0]['passport_scan'])
        expected_image_path = encoder.encode(json_data[0]['photo'])

        self.assertEqual(testeded_file_path, expected_file_path)
        self.assertEqual(testeded_image_path, expected_image_path)
    def test_generate_with_quantity(self, mock_generate):
        factories = [CityFactory]
        expected_quantity = 3
        factories_data = [
            generate_to_json(f, quantity=expected_quantity) for f in factories
        ]
        tested_data = json.loads(
            self.cmd.generate(factories, quantity=expected_quantity))

        for tested, expected in zip(tested_data, factories_data):
            self.assertEqual(tested['model'],
                             CityFactory._meta.model._meta.label_lower)
            self.assertEqual(tested_data['fields'], expected)
Ejemplo n.º 6
0
    def generate(self, generate_factories, update=False, quantity=1, **kwargs):
        """
        Return json string contains models label and fiels as dict representation of factory class.
        For json serializing uses DjangoJSONEncoder as default, to specify encoder pass kwarg cls.
        """
        if not kwargs.get('cls'):
            kwargs['cls'] = DjangoFileJsonEncoder

        result = []
        for factory_class in generate_factories:
            model_label = factory_class._meta.model._meta.label_lower
            factories_data = generate_to_json(factory_class, quantity=quantity)
            for factory_data in factories_data:
                result.append({'model': model_label, 'fields': factory_data})
        return json.dumps(result, **kwargs)
 def test_generate(self):
     expected_json = [generators.generate_to_dict(CityFactory)]
     result = generators.generate_to_json(CityFactory)
     self.assertEqual(result, expected_json)