class StaticSequentialDataFixtureTestCase(TestCase, DataFixtureTestCase):
    def setUp(self):
        self.fixture = StaticSequentialDataFixture()

    def test_it_must_fill_fields_sequencially_by_attribute_if_field_is_unique(self):
        field = models.IntegerField(unique=True)
        field.name = 'x'
        self.assertEquals(1, self.fixture.generate_data(field))
        self.assertEquals(2, self.fixture.generate_data(field))

    def test_it_must_fill_fields_with_static_value_by_attribute_if_field_is_not_unique(self):
        field = models.IntegerField(unique=False)
        field.name = 'x'
        self.assertEquals(1, self.fixture.generate_data(field))
        self.assertEquals(1, self.fixture.generate_data(field))
Ejemplo n.º 2
0
def get_data_fixture(default='sequential'):
    # It must be 'sequential', 'static_sequential', 'global_sequential', 'random' or 'path.to.CustomDataFixtureClass'
    try:
        INTERNAL_DATA_FIXTURES = {
            'sequential': SequentialDataFixture(),
            'static_sequential': StaticSequentialDataFixture(),
            'global_sequential': GlobalSequentialDataFixture(),
            'random': RandomDataFixture()
        }
        if hasattr(settings, 'DDF_DEFAULT_DATA_FIXTURE'):
            if settings.DDF_DEFAULT_DATA_FIXTURE in INTERNAL_DATA_FIXTURES.keys(
            ):
                return INTERNAL_DATA_FIXTURES[
                    settings.DDF_DEFAULT_DATA_FIXTURE]
            else:
                # path.to.CustomDataFixtureClass
                mod_name, obj_name = get_mod_func(
                    settings.DDF_DEFAULT_DATA_FIXTURE)
                module = import_module(mod_name)
                custom_data_fixture = getattr(module, obj_name)
                return custom_data_fixture()
        else:
            return INTERNAL_DATA_FIXTURES[default]
    except:
        six.reraise(
            DDFImproperlyConfigured,
            DDFImproperlyConfigured(
                "DDF_DEFAULT_DATA_FIXTURE (%s) must be 'sequential', 'static_sequential', 'global_sequential', 'random' or 'path.to.CustomDataFixtureClass'."
                % settings.DDF_DEFAULT_DATA_FIXTURE),
            sys.exc_info()[2])
class StaticSequentialDataFixtureTestCase(TestCase, DataFixtureTestCase):
    def setUp(self):
        self.fixture = StaticSequentialDataFixture()

    def test_it_must_fill_fields_sequencially_by_attribute_if_field_is_unique(
            self):
        field = models.IntegerField(unique=True)
        field.name = 'x'
        self.assertEquals(1, self.fixture.generate_data(field))
        self.assertEquals(2, self.fixture.generate_data(field))

    def test_it_must_fill_fields_with_static_value_by_attribute_if_field_is_not_unique(
            self):
        field = models.IntegerField(unique=False)
        field.name = 'x'
        self.assertEquals(1, self.fixture.generate_data(field))
        self.assertEquals(1, self.fixture.generate_data(field))
 def setUp(self):
     self.fixture = StaticSequentialDataFixture()
Ejemplo n.º 5
0
            settings, config_name) else default
    except DDFImproperlyConfigured:
        six.reraise(
            DDFImproperlyConfigured,
            DDFImproperlyConfigured(
                "%s (%s) must be True or False." %
                (config_name, getattr(settings, config_name))),
            sys.exc_info()[2])


# DDF_DEFAULT_DATA_FIXTURE default = 'sequential'
# It must be 'sequential', 'static_sequential', 'global_sequential', 'random' or 'path.to.CustomDataFixtureClass'
try:
    INTERNAL_DATA_FIXTURES = {
        'sequential': SequentialDataFixture(),
        'static_sequential': StaticSequentialDataFixture(),
        'global_sequential': GlobalSequentialDataFixture(),
        'random': RandomDataFixture()
    }
    if hasattr(settings, 'DDF_DEFAULT_DATA_FIXTURE'):
        if settings.DDF_DEFAULT_DATA_FIXTURE in INTERNAL_DATA_FIXTURES.keys():
            DDF_DEFAULT_DATA_FIXTURE = INTERNAL_DATA_FIXTURES[
                settings.DDF_DEFAULT_DATA_FIXTURE]
        else:
            # path.to.CustomDataFixtureClass
            mod_name, obj_name = get_mod_func(
                settings.DDF_DEFAULT_DATA_FIXTURE)
            module = import_module(mod_name)
            custom_data_fixture = getattr(module, obj_name)
            DDF_DEFAULT_DATA_FIXTURE = custom_data_fixture()
    else:
 def setUp(self):
     self.fixture = StaticSequentialDataFixture()