예제 #1
0
파일: test_api.py 프로젝트: ttjelsa/lego
    def test_add_invalid_tags(self):
        pk = 1
        event = self.client.get(event_api._get_detail_url(pk))
        event_data = event.data

        event_data["tags"] = ["invalid tag with space"]
        response = self.client.patch(event_api._get_detail_url(pk), event_data)
        self.assertEquals(response.status_code, 400)
예제 #2
0
파일: test_api.py 프로젝트: ttjelsa/lego
 def test_remove_tag(self):
     pk = 2
     event = self.client.get(event_api._get_detail_url(pk))
     event_data = event.data
     del event_data["cover"]
     tags = event_data.pop("tags")
     removed = tags.pop()
     event_data["tags"] = tags
     res = self.client.put(event_api._get_detail_url(pk), event_data)
     self.assertEquals(res.status_code, 200)
     self.assertFalse(removed in res.data.pop("tags"))
예제 #3
0
파일: test_api.py 프로젝트: ttjelsa/lego
 def test_add_existing_tag(self):
     pk = 1
     event = self.client.get(event_api._get_detail_url(pk))
     event_data = event.data
     del event_data["cover"]
     # Make sure that we're not adding a tag which is there already.
     # The simplest way to do this is to ensure that the event has no tags.
     self.assertEquals(len(event_data.pop("tags")), 0)
     tag = Tag.objects.first()
     event_data["tags"] = [tag.tag]
     res = self.client.put(event_api._get_detail_url(pk), event_data)
     self.assertEquals(res.status_code, 200)
     self.assertTrue(tag.tag in res.data.pop("tags"))
예제 #4
0
파일: test_api.py 프로젝트: ttjelsa/lego
    def test_clear_tags(self):
        """Clear tags when [] is posted"""
        event = Event.objects.get(pk=1)
        response = self.client.get(event_api._get_detail_url(event.pk))
        event_data = response.data

        del event_data["cover"]
        event_data["tags"] = []
        response = self.client.patch(event_api._get_detail_url(event.pk),
                                     event_data)
        self.assertEquals(response.status_code, 200)

        event.refresh_from_db()
        self.assertEquals(list(event.tags.values_list("pk", flat=True)), [])
예제 #5
0
파일: test_api.py 프로젝트: ttjelsa/lego
    def test_add_new_tag(self):
        pk = 1
        event = self.client.get(event_api._get_detail_url(pk))
        event_data = event.data
        del event_data["cover"]

        tag = "ayyy-totaly-unique123"
        self.assertIsNone(Tag.objects.filter(tag=tag).first())

        event_data["tags"] = [tag]
        res = self.client.put(event_api._get_detail_url(pk), event_data)
        self.assertEquals(res.status_code, 200)
        self.assertTrue(tag in res.data.pop("tags"))
        self.assertIsNotNone(Tag.objects.filter(tag=tag).first())
예제 #6
0
파일: test_api.py 프로젝트: ttjelsa/lego
 def test_add_duplicate_tag(self):
     pk = 2
     event = self.client.get(event_api._get_detail_url(pk))
     event_data = event.data
     del event_data["cover"]
     tags = event_data.pop("tags") or []
     self.assertTrue(len(tags) > 0)
     event_data["tags"] = tags + tags
     total_tags_before = Tag.objects.count()
     res = self.client.put(event_api._get_detail_url(pk), event_data)
     self.assertEquals(res.status_code, 200)
     total_tags_after = Tag.objects.count()
     self.assertEquals(total_tags_before, total_tags_after)
     self.assertEquals(res.data["tags"], tags)
예제 #7
0
파일: test_api.py 프로젝트: ttjelsa/lego
    def test_preserve_tags(self):
        """Preserve tags when no tags is posted"""
        event = Event.objects.get(pk=1)
        tag = Tag.objects.create(pk="test-tag")
        event.tags.add(tag)

        response = self.client.get(event_api._get_detail_url(event.pk))
        event_data = response.data

        del event_data["cover"]
        del event_data["tags"]
        response = self.client.patch(event_api._get_detail_url(event.pk),
                                     event_data)
        self.assertEquals(response.status_code, 200)
        self.assertEquals(list(event.tags.values_list("pk", flat=True)),
                          response.data["tags"])
        self.assertEquals(len(response.data["tags"]), 1)