File: test_sequential_fixture.py

package info (click to toggle)
python-django-dynamic-fixture 4.0.1-1~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 616 kB
  • sloc: python: 3,909; makefile: 237; sh: 6
file content (43 lines) | stat: -rw-r--r-- 1,794 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from django.db import models

from django.test import TestCase

from django_dynamic_fixture.fixture_algorithms.tests.abstract_test_generic_fixture import DataFixtureTestCase
from django_dynamic_fixture.fixture_algorithms.sequential_fixture import SequentialDataFixture, StaticSequentialDataFixture


class SequentialDataFixtureTestCase(TestCase, DataFixtureTestCase):
    def setUp(self):
        self.fixture = SequentialDataFixture()

    def test_it_must_fill_integer_fields_sequencially_by_attribute(self):
        assert self.fixture.generate_data(models.IntegerField()) == 1
        field = models.IntegerField()
        field.name = 'x'
        assert self.fixture.generate_data(field) == 1
        assert self.fixture.generate_data(field) == 2

    def test_it_must_fill_string_with_sequences_of_numbers_by_attribute(self):
        assert self.fixture.generate_data(models.CharField(max_length=1)) == '1'
        field = models.CharField(max_length=1)
        field.name = 'x'
        assert self.fixture.generate_data(field) == '1'
        assert self.fixture.generate_data(field) == '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'
        assert self.fixture.generate_data(field) == 1
        assert self.fixture.generate_data(field) == 2

    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'
        assert self.fixture.generate_data(field) == 1
        assert self.fixture.generate_data(field) == 1