def test_get_single_label_valid(self): response = self.client.get( reverse('get_one_label', kwargs={'label_id': self.label1.id})) label = Label.objects.get(pk=self.label1.pk) serializer = LabelSerializer(label) self.assertEqual(response.data, serializer.data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_get_all_labels(self): response = self.client.get(reverse("get_all_labels")) labels = Label.objects.all() serializer = LabelSerializer(labels, many=True) self.assertEqual(response.data, serializer.data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_get_all_labels_for_repo(self): response = self.client.get( reverse("get_all_labels_for_repo", kwargs={'repo_id': self.repository.id})) labels = Label.objects.filter(repository=self.repository.id) serializer = LabelSerializer(labels, many=True) self.assertEqual(response.data, serializer.data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_create_label_valid_data(self): count_before_create = Label.objects.all().count() response = self.client.post( reverse("create_label", kwargs={'repo_id': self.repository.id}), { 'name': 'LabelNew', 'description': 'Test description new label', 'color': 'green' }) count_after_create = Label.objects.all().count() label_new = Label.objects.get(name="LabelNew") serializer = LabelSerializer(label_new) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data, serializer.data) self.assertEqual(count_after_create, count_before_create + 1)
def update_label(request, label_id): label = get_object_or_404(Label, pk=label_id) if label.name != request.data["name"]: found_labels = Label.objects.filter(repository=label.repository, name=request.data["name"]) if len(found_labels) > 0: raise GeneralException("Label with given name already exists.") label.name = request.data["name"] label.description = request.data["description"] label.color = request.data["color"] label.save() label.refresh_from_db() serializer = LabelSerializer(label, many=False) return Response(serializer.data)
def create_label(request, repo_id): repository = get_object_or_404(Repository, pk=repo_id) found_labels = Label.objects.filter(repository=repo_id, name=request.data["name"]) if len(found_labels) > 0: raise GeneralException("Label with given name already exists.") label = Label.objects.create(name=request.data["name"], description=request.data["description"], color=request.data["color"], repository=repository) label.save() serializer = LabelSerializer(label, many=False) return Response(serializer.data)
def test_put_label_valid_data(self): label_info = { 'name': 'LabelUpdated', 'description': 'Test description updated label', 'color': 'orange' } response = self.client.put(reverse("update_label", kwargs={'label_id': self.label1.id}), data=json.dumps(label_info), content_type='application/json') label_updated = Label.objects.get(pk=self.label1.id) serializer = LabelSerializer(label_updated) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual('LabelUpdated', serializer.data['name']) self.assertEqual('Test description updated label', serializer.data['description']) self.assertEqual('orange', serializer.data['color'])
class IssueSerializer(serializers.ModelSerializer): milestone = MilestoneSerializer(many=False) repository = RepositorySerializer(many=False) assignees = UserSerializer(many=True) labels = LabelSerializer(read_only=True, many=True) class Meta: model = Issue fields = [ 'id', 'title', 'description', 'type', 'due_date', 'weight', 'assignees', 'milestone', 'repository', 'state', 'labels' ]
def get_labels_for_repo(request, repo_id): labels = Label.objects.filter(repository=repo_id) serializer = LabelSerializer(labels, many=True) return Response(serializer.data)
def get_all_labels(request): labels = Label.objects.all() serializer = LabelSerializer(labels, many=True) return Response(serializer.data)
def get_one_label(request, label_id): label = get_object_or_404(Label, pk=label_id) serializer = LabelSerializer(label, many=False) return Response(serializer.data)