def test_recent(self): skill = SkillFactory() act1 = ActivityFactory(skill=skill) act2 = ActivityFactory(skill=skill) act3 = ActivityFactory(skill=skill) self.client.force_login(self.user) response = self.client.get(reverse('activity-recent')) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data[act3.id]['id'], act3.id) self.assertEqual(response.data[act2.id]['id'], act2.id) self.assertEqual(response.data[act1.id]['id'], act1.id)
def test_list_not_allowed(self): act = ActivityFactory() self.client.force_login(self.user) response = self.client.get( reverse('activity-entry-list', kwargs={'activity_pk': act.id})) self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED)
def test_details(self): """ Should provide skill detailed deep overview """ skill1 = SkillFactory(name='Skill1') _skill2 = SkillFactory(name='Skill2') _act1 = ActivityFactory(skill=skill1) _act2 = ActivityFactory(skill=skill1) self.client.force_login(self.user) response = self.client.get( reverse('skill-detail', kwargs={'pk': skill1.pk})) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data['categories']), 2) self.assertEqual(len(response.data['activities']), 2)
def test_serialization(self): act = ActivityFactory() s = ActivityFlatSerializer(act) assert s.data['id'] == act.id assert s.data['title'] == act.title assert s.data['skill'] == act.skill.id assert s.data['category'] == act.category.id assert s.data['description'] == act.description
def test_destroy(self): act = ActivityFactory() self.client.force_login(self.user) response = self.client.delete( reverse('activity-detail', kwargs={'pk': act.pk})) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertFalse(Activity.objects.filter(id=act.id).exists())
def test_details(self): act = ActivityFactory() _attachment = AttachmentFactory(activity=act) _comment = CommentFactory(activity=act) self.client.force_login(self.user) response = self.client.get( reverse('activity-detail', kwargs={'pk': act.pk})) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data['entries']), 2)
def test_create(self): act = ActivityFactory() self.client.force_login(self.user) response = self.client.post(reverse('activity-entry-list', kwargs={'activity_pk': act.id}), data={ 'comment': 'entryComment', 'activity': act.id, }) entry = ActivityEntry.objects.get(id=response.data['id']) self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(entry.activity, act) self.assertEqual(entry.comment, 'entryComment')
def test_serialization(self, mocker): mocker.patch('django.utils.timezone.now', mock_now) act = ActivityFactory() attachment = AttachmentFactory(activity=act) comment = CommentFactory(activity=act) s = ActivityDeepSerializer(act) data = s.data comment_data = data['entries'][comment.id] attachment_data = data['entries'][attachment.id] data['add_date'] = parse_datetime(data['add_date']) data['modify_date'] = parse_datetime(data['modify_date']) comment_data['add_date'] = parse_datetime(comment_data['add_date']) comment_data['modify_date'] = parse_datetime(comment_data['modify_date']) attachment_data['add_date'] = parse_datetime(attachment_data['add_date']) attachment_data['modify_date'] = parse_datetime(attachment_data['modify_date']) assert data == dict( id=act.id, title=act.title, description=act.description, skill=act.skill.id, category=act.category.id, add_date=mock_now(), modify_date=mock_now(), entries={ attachment.id: dict( id=attachment.id, add_date=mock_now(), modify_date=mock_now(), comment='' ), comment.id: dict( id=comment.id, add_date=mock_now(), modify_date=mock_now(), comment=comment.comment, ), } )
def test_serialization(self, mocker): mocker.patch('django.utils.timezone.now', mock_now) skill = SkillFactory(name='TestSkill') categories = skill.categories.all() act = ActivityFactory(title='Act1', category=categories[0], skill=skill) s = SkillDeepSerializer(skill, context={'request': None}) data = s.data data['add_date'] = parse_datetime(data['add_date']) data_act = data['activities'][act.id] data_act['add_date'] = parse_datetime(data_act['add_date']) data_act['modify_date'] = parse_datetime(data_act['modify_date']) assert data == dict( id=skill.id, name='TestSkill', add_date=mock_now(), categories={ categories[0].id: dict( id=categories[0].id, name=categories[0].name, display_order=categories[0].display_order, ), categories[1].id: dict( id=categories[1].id, name=categories[1].name, display_order=categories[1].display_order, ) }, activities={ act.id: dict( id=act.id, title=act.title, category=categories[0].id, skill=skill.id, description=act.description, add_date=mock_now(), modify_date=mock_now() ) } )
def test_update(self, mocker): mocker.patch('django.utils.timezone.now', mock_now) request = create_user_request(APIRequestFactory().post) skill = SkillFactory() categories = skill.categories.all() act = ActivityFactory(skill=skill, category=categories[0]) s = ActivityFlatSerializer(instance=act, data=dict( title='ModifiedAct', skill=skill.id, category=categories[1].id, description='new_desc', ), context={ 'request': request }) s.is_valid(raise_exception=True) act = Activity.objects.get(id=s.save().id) assert act.title == 'ModifiedAct' assert act.skill.id == skill.id assert act.category.id == categories[1].id assert act.description == 'new_desc'