示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
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)
示例#6
0
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)
示例#7
0
    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'])
示例#8
0
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'
        ]
示例#9
0
def get_labels_for_repo(request, repo_id):
    labels = Label.objects.filter(repository=repo_id)
    serializer = LabelSerializer(labels, many=True)

    return Response(serializer.data)
示例#10
0
def get_all_labels(request):
    labels = Label.objects.all()
    serializer = LabelSerializer(labels, many=True)

    return Response(serializer.data)
示例#11
0
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)