authentik.blueprints.tests.test_v1_state
Test blueprints v1
1"""Test blueprints v1""" 2 3from django.test import TransactionTestCase 4 5from authentik.blueprints.v1.importer import Importer 6from authentik.flows.models import Flow 7from authentik.lib.generators import generate_id 8from authentik.lib.tests.utils import load_fixture 9 10 11class TestBlueprintsV1State(TransactionTestCase): 12 """Test Blueprints state attribute""" 13 14 def test_state_present(self): 15 """Test state present""" 16 flow_slug = generate_id() 17 import_yaml = load_fixture("fixtures/state_present.yaml", id=flow_slug) 18 19 importer = Importer.from_string(import_yaml) 20 self.assertTrue(importer.validate()[0]) 21 self.assertTrue(importer.apply()) 22 # Ensure object exists 23 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 24 self.assertEqual(flow.slug, flow_slug) 25 26 # Update object 27 flow.title = "bar" 28 flow.save() 29 30 flow.refresh_from_db() 31 self.assertEqual(flow.title, "bar") 32 33 # Ensure importer updates it 34 importer = Importer.from_string(import_yaml) 35 self.assertTrue(importer.validate()[0]) 36 self.assertTrue(importer.apply()) 37 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 38 self.assertEqual(flow.title, "foo") 39 40 def test_state_created(self): 41 """Test state created""" 42 flow_slug = generate_id() 43 import_yaml = load_fixture("fixtures/state_created.yaml", id=flow_slug) 44 45 importer = Importer.from_string(import_yaml) 46 self.assertTrue(importer.validate()[0]) 47 self.assertTrue(importer.apply()) 48 # Ensure object exists 49 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 50 self.assertEqual(flow.slug, flow_slug) 51 52 # Update object 53 flow.title = "bar" 54 flow.save() 55 56 flow.refresh_from_db() 57 self.assertEqual(flow.title, "bar") 58 59 # Ensure importer doesn't update it 60 importer = Importer.from_string(import_yaml) 61 self.assertTrue(importer.validate()[0]) 62 self.assertTrue(importer.apply()) 63 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 64 self.assertEqual(flow.title, "bar") 65 66 def test_state_absent(self): 67 """Test state absent""" 68 flow_slug = generate_id() 69 import_yaml = load_fixture("fixtures/state_created.yaml", id=flow_slug) 70 71 importer = Importer.from_string(import_yaml) 72 self.assertTrue(importer.validate()[0]) 73 self.assertTrue(importer.apply()) 74 # Ensure object exists 75 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 76 self.assertEqual(flow.slug, flow_slug) 77 78 import_yaml = load_fixture("fixtures/state_absent.yaml", id=flow_slug) 79 importer = Importer.from_string(import_yaml) 80 self.assertTrue(importer.validate()[0]) 81 self.assertTrue(importer.apply()) 82 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 83 self.assertIsNone(flow)
class
TestBlueprintsV1State(django.test.testcases.TransactionTestCase):
12class TestBlueprintsV1State(TransactionTestCase): 13 """Test Blueprints state attribute""" 14 15 def test_state_present(self): 16 """Test state present""" 17 flow_slug = generate_id() 18 import_yaml = load_fixture("fixtures/state_present.yaml", id=flow_slug) 19 20 importer = Importer.from_string(import_yaml) 21 self.assertTrue(importer.validate()[0]) 22 self.assertTrue(importer.apply()) 23 # Ensure object exists 24 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 25 self.assertEqual(flow.slug, flow_slug) 26 27 # Update object 28 flow.title = "bar" 29 flow.save() 30 31 flow.refresh_from_db() 32 self.assertEqual(flow.title, "bar") 33 34 # Ensure importer updates it 35 importer = Importer.from_string(import_yaml) 36 self.assertTrue(importer.validate()[0]) 37 self.assertTrue(importer.apply()) 38 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 39 self.assertEqual(flow.title, "foo") 40 41 def test_state_created(self): 42 """Test state created""" 43 flow_slug = generate_id() 44 import_yaml = load_fixture("fixtures/state_created.yaml", id=flow_slug) 45 46 importer = Importer.from_string(import_yaml) 47 self.assertTrue(importer.validate()[0]) 48 self.assertTrue(importer.apply()) 49 # Ensure object exists 50 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 51 self.assertEqual(flow.slug, flow_slug) 52 53 # Update object 54 flow.title = "bar" 55 flow.save() 56 57 flow.refresh_from_db() 58 self.assertEqual(flow.title, "bar") 59 60 # Ensure importer doesn't update it 61 importer = Importer.from_string(import_yaml) 62 self.assertTrue(importer.validate()[0]) 63 self.assertTrue(importer.apply()) 64 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 65 self.assertEqual(flow.title, "bar") 66 67 def test_state_absent(self): 68 """Test state absent""" 69 flow_slug = generate_id() 70 import_yaml = load_fixture("fixtures/state_created.yaml", id=flow_slug) 71 72 importer = Importer.from_string(import_yaml) 73 self.assertTrue(importer.validate()[0]) 74 self.assertTrue(importer.apply()) 75 # Ensure object exists 76 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 77 self.assertEqual(flow.slug, flow_slug) 78 79 import_yaml = load_fixture("fixtures/state_absent.yaml", id=flow_slug) 80 importer = Importer.from_string(import_yaml) 81 self.assertTrue(importer.validate()[0]) 82 self.assertTrue(importer.apply()) 83 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 84 self.assertIsNone(flow)
Test Blueprints state attribute
def
test_state_present(self):
15 def test_state_present(self): 16 """Test state present""" 17 flow_slug = generate_id() 18 import_yaml = load_fixture("fixtures/state_present.yaml", id=flow_slug) 19 20 importer = Importer.from_string(import_yaml) 21 self.assertTrue(importer.validate()[0]) 22 self.assertTrue(importer.apply()) 23 # Ensure object exists 24 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 25 self.assertEqual(flow.slug, flow_slug) 26 27 # Update object 28 flow.title = "bar" 29 flow.save() 30 31 flow.refresh_from_db() 32 self.assertEqual(flow.title, "bar") 33 34 # Ensure importer updates it 35 importer = Importer.from_string(import_yaml) 36 self.assertTrue(importer.validate()[0]) 37 self.assertTrue(importer.apply()) 38 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 39 self.assertEqual(flow.title, "foo")
Test state present
def
test_state_created(self):
41 def test_state_created(self): 42 """Test state created""" 43 flow_slug = generate_id() 44 import_yaml = load_fixture("fixtures/state_created.yaml", id=flow_slug) 45 46 importer = Importer.from_string(import_yaml) 47 self.assertTrue(importer.validate()[0]) 48 self.assertTrue(importer.apply()) 49 # Ensure object exists 50 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 51 self.assertEqual(flow.slug, flow_slug) 52 53 # Update object 54 flow.title = "bar" 55 flow.save() 56 57 flow.refresh_from_db() 58 self.assertEqual(flow.title, "bar") 59 60 # Ensure importer doesn't update it 61 importer = Importer.from_string(import_yaml) 62 self.assertTrue(importer.validate()[0]) 63 self.assertTrue(importer.apply()) 64 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 65 self.assertEqual(flow.title, "bar")
Test state created
def
test_state_absent(self):
67 def test_state_absent(self): 68 """Test state absent""" 69 flow_slug = generate_id() 70 import_yaml = load_fixture("fixtures/state_created.yaml", id=flow_slug) 71 72 importer = Importer.from_string(import_yaml) 73 self.assertTrue(importer.validate()[0]) 74 self.assertTrue(importer.apply()) 75 # Ensure object exists 76 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 77 self.assertEqual(flow.slug, flow_slug) 78 79 import_yaml = load_fixture("fixtures/state_absent.yaml", id=flow_slug) 80 importer = Importer.from_string(import_yaml) 81 self.assertTrue(importer.validate()[0]) 82 self.assertTrue(importer.apply()) 83 flow: Flow = Flow.objects.filter(slug=flow_slug).first() 84 self.assertIsNone(flow)
Test state absent