import pytest from django.core import management from django.conf import settings from .. import factories @pytest.fixture def seq(): from taiga.projects.references import sequences as seq return seq @pytest.fixture def refmodels(): from taiga.projects.references import models return models @pytest.mark.django_db def test_sequences(seq): seqname = "foo" assert not seq.exists(seqname) # Create and check values seq.create(seqname) assert seq.exists(seqname) assert seq.next_value(seqname) == 1 assert seq.next_value(seqname) == 2 # Delete sequence seq.delete(seqname) assert not seq.exists(seqname) # Create new seq with same name # after previously deleted it seq.create(seqname) assert seq.next_value(seqname) == 1 # Alter sequence seq.alter(seqname, 4) assert seq.next_value(seqname) == 5 # Delete after alter seq.delete(seqname) assert not seq.exists(seqname) @pytest.mark.django_db def test_unique_reference_per_project(seq, refmodels): project = factories.ProjectFactory.create() seqname = refmodels.make_sequence_name(project) assert seqname == "references_project{0}".format(project.id) assert seq.exists(seqname) assert refmodels.make_unique_reference_id(project, create=True) == 1 assert refmodels.make_unique_reference_id(project, create=True) == 2 project.delete() assert not seq.exists(seqname)