def test_shouldInjectTheField(self): # pylint: disable=no-self-use assert_that(BasicTestModel, has_property('river', is_(instance_of(RiverObject)))) assert_that(BasicTestModel.river, has_property('my_field', is_(instance_of(ClassWorkflowObject)))) content_type = ContentType.objects.get_for_model(BasicTestModel) state1 = StateObjectFactory.create(label="state1") state2 = StateObjectFactory.create(label="state2") workflow = WorkflowFactory(content_type=content_type, field_name="my_field", initial_state=state1) TransitionApprovalMetaFactory.create( workflow=workflow, source_state=state1, destination_state=state2, priority=0 ) test_model = BasicTestModel.objects.create() assert_that(test_model, has_property('river', is_(instance_of(RiverObject)))) assert_that(test_model.river, has_property('my_field', is_(instance_of(InstanceWorkflowObject)))) assert_that(BasicTestModel.river.my_field, has_property('initial_state', is_(instance_of(State)))) assert_that(BasicTestModel.river.my_field, has_property('final_states', is_(instance_of(QuerySet)))) assert_that(test_model.river.my_field, has_property('approve', has_property("__call__"))) assert_that(test_model.river.my_field, has_property('on_initial_state', is_(instance_of(bool)))) assert_that(test_model.river.my_field, has_property('on_final_state', is_(instance_of(bool))))
def test_injections(self): self.assertTrue(hasattr(TestModel, 'river')) self.assertIsInstance(TestModel.river, RiverObject) self.assertTrue(hasattr(TestModel.river, "my_field")) self.assertIsInstance(TestModel.river.my_field, ClassWorkflowObject) content_type = ContentType.objects.get_for_model(TestModel) state1 = StateObjectFactory.create(label="state1") state2 = StateObjectFactory.create(label="state2") TransitionApprovalMetaFactory.create( content_type=content_type, field_name="my_field", source_state=state1, destination_state=state2, priority=0 ) test_model = TestModel.objects.create() self.assertTrue(hasattr(test_model, "river")) self.assertIsInstance(test_model.river, RiverObject) self.assertTrue(hasattr(test_model.river, "my_field")) self.assertIsInstance(test_model.river.my_field, InstanceWorkflowObject) self.assertTrue(hasattr(test_model.river.my_field, "approve")) self.assertTrue(callable(test_model.river.my_field.approve)) self.assertTrue(test_model.river.my_field.on_initial_state) self.assertFalse(test_model.river.my_field.on_final_state) self.assertEqual(state1, TestModel.river.my_field.initial_state) self.assertEqual(1, TestModel.river.my_field.final_states.count()) self.assertEqual(state2, TestModel.river.my_field.final_states[0])