def test_alter_circle_dimension_filter_not_alter_others_circle_dimension_filter( self, ): client = get_logged_superuser_client() person = create_users(1)[0] first_circle = CircleFactory.create() second_circle = CircleFactory.create() first_circle_topic = TopicFactory.create(circle=first_circle) second_circle_topic = TopicFactory.create(circle=second_circle) first_circle_dimension_populated = DimensionFactory.create( name="dimension_1", topic=first_circle_topic) first_circle_dimension_empty = DimensionFactory.create( name="dimension_2", topic=first_circle_topic) second_circle_dimension = DimensionFactory.create( name="dimension_1", topic=second_circle_topic) first_circle_score = ScoreFactory.create( dimension=first_circle_dimension_populated, person=person) second_circle_score = ScoreFactory.create( dimension=second_circle_dimension, person=person) response = client.get( "/", { f"topic_dimension_eq_{first_circle.id}": f"{first_circle_dimension_empty.id}" }, ) self.assertContains( response, f'{first_circle_topic.name} : <span class="badge dark-grey-bg text-white">0</span>', ) self.assertContains( response, f'{second_circle_topic.name} : <span class="badge dark-grey-bg text-white">1</span>', )
def test_alter_circle_value_filter_not_alter_others_circle_value_filter( self): client = get_logged_superuser_client() person = create_users(1)[0] first_circle = CircleFactory.create() second_circle = CircleFactory.create() first_circle_topic = TopicFactory.create(circle=first_circle) second_circle_topic = TopicFactory.create(circle=second_circle) first_circle_dimension = DimensionFactory.create( topic=first_circle_topic) second_circle_dimension = DimensionFactory.create( topic=second_circle_topic) first_circle_score = ScoreFactory.create( dimension=first_circle_dimension, value=3, person=person) second_circle_score = ScoreFactory.create( dimension=second_circle_dimension, value=3, person=person) response = client.get("/", {f"topic_value_gt_{first_circle.id}": 4}) self.assertContains( response, f'{first_circle_topic.name} : <span class="badge dark-grey-bg text-white">0</span>', ) self.assertContains( response, f'{second_circle_topic.name} : <span class="badge dark-grey-bg text-white">1</span>', )
def test_different_topics_can_have_same_dimension(self): circle = CircleFactory.create(name="testCircle") topic = TopicFactory.create(name="testTopic", circle=circle) topic_two = TopicFactory.create(name="testTopic_two", circle=circle) dimension_name = "testDimension" dimension = Dimension(name=dimension_name, topic=topic) dimension.save() dimension_double = Dimension(name=dimension_name, topic=topic_two) dimension_double.save() self.assertEqual(dimension.name, dimension_double.name)
def test_index_view_shows_all_topics_of_different_circles(self): client = get_logged_superuser_client() first_circle = CircleFactory.create() second_circle = CircleFactory.create() first_circle_topics = [ TopicFactory.create(circle=first_circle) for _ in range(3) ] second_circle_topics = [ TopicFactory.create(circle=second_circle) for _ in range(3) ] response = client.get("/") topics_names = [topic.name for topic in first_circle_topics ] + [topic.name for topic in second_circle_topics] for topic_name in topics_names: self.assertContains(response, topic_name)
def test_index_shows_cirle_and_topics_names(self): client = get_logged_superuser_client() topic_name = "testTopic" circle_name = "testCircle" circle = CircleFactory.create(name=circle_name) topic = TopicFactory.create(name=topic_name, circle=circle) response = client.get("/") self.assertContains(response, circle_name) self.assertContains(response, topic_name)
def test_topic_cant_have_same_dimension_twice(self): circle = CircleFactory.create(name="testCircle") topic = TopicFactory.create(name="testTopic", circle=circle) dimension_name = "testDimension" dimension = Dimension(name=dimension_name, topic=topic) dimension.save() with self.assertRaises(IntegrityError): dimension_double = Dimension(name=dimension_name, topic=topic) dimension_double.save()
def test_manage_view_upload_file_with_not_existing_dimension_shows_error_message( self, ): client = get_logged_superuser_client() user = UserFactory.build( username="******", first_name="user_name", last_name="user_surname", password="******", ) user.save() circle = CircleFactory.create(name="Circle") topic_one = TopicFactory.create(name="topic1", circle=circle) topic_two = TopicFactory.create(name="topic2", circle=circle) with open("clusters/tests/test_models/excel_test_file/cl_example.xlsx", "rb") as xlsx_file: response = client.post("/manage/", {"file": xlsx_file}) messages = list(get_messages(response.wsgi_request)) self.assertEqual(len(messages), 1) self.assertEqual( str(messages[0]), "Consistency Error: Dimension <dimension1> in xlsx file does not exists!", )
def test_count_people_in_topic_return_expected_value(self): circle = CircleFactory.create() topic = TopicFactory(circle=circle) dimension = DimensionFactory(topic=topic) dimension.save() people = create_users(2) score_first = Score(person=people[0], dimension=dimension, value=0) score_first.save() score_second = Score(person=people[1], dimension=dimension, value=1) score_second.save() index = IndexView() value = index.count_people_in_topic(topic) self.assertEqual(value, 1)
def test_filtered_view_shows_only_selected_dimensions_score(self): client = get_logged_superuser_client() circle = CircleFactory.create() topic = TopicFactory.create(name="topic", circle=circle) dimension_one = DimensionFactory.create(name="dimension_one", topic=topic) dimension_two = DimensionFactory.create(name="dimension_two", topic=topic) people = create_users(2) score_first = Score(person=people[0], dimension=dimension_one, value=5) score_first.save() score_second = Score(person=people[1], dimension=dimension_two, value=5) score_second.save() response = client.get( "/", {f"topic_dimension_eq_{circle.id}": dimension_one.id}) self.assertContains( response, 'topic : <span class="badge dark-grey-bg text-white">1</span>')
def test_retrieve_object_ignoring_case(self): user = User(username="******", first_name="mario", last_name="rossi", password="******") user.save() circle = CircleFactory.create(name="circle") topics = [ TopicFactory.create(name=f"Topic{i}", circle=circle) for i in range(1, 3) ] dimensions1 = [ DimensionFactory.create(name=f"diMension{i}", topic=topics[0]) for i in range(1, 5) ] dimensions2 = [ DimensionFactory.create(name=f"dimenSion{i}", topic=topics[1]) for i in range(1, 5) ] with open( "clusters/tests/test_models/excel_test_file/cl_example_2.xlsx", "rb") as xlsx_file: ExcelUploadUseCase( UserRepository(), CircleRepository(), ScoreRepository(), TopicRepository(), DimensionRepository(), TransactionManager(), MockListener(), ).uploadFile(xlsx_file) scores = Score.objects.all() self.assertTrue(len(scores) > 0)