def test_delete_image_tags(self):
        """
        @summary: Delete image tags

        1) Given a previously created image, add image tag
        2) Verify that the response code is 204
        3) Get image
        4) Verify that the response code is 200
        5) Verify that the image tag is in the list of image tags
        6) Verify that there are number_of_tags in the list of image tags
        7) Repeat steps 1-5 for number_of_tags
        8) Delete image tag
        9) Verify that the response code is 204
        10) Get image
        11) Verify that the response code is 200
        12) Verify that the image tag is not in the list of image tags
        13) Repeat stesp 7-11 for number_of_tags
        14) Get image
        15) Verify that the response code is 200
        16) Verify that the list of image tags is empty
        """

        number_of_tags = 5
        tags = []
        image = self.images.pop()
        for t in range(number_of_tags):
            tag = rand_name('tag')
            tags.append(tag)
            response = self.images_client.add_tag(image.id_, tag)
            self.assertEqual(response.status_code, 204)
            response = self.images_client.get_image(image.id_)
            self.assertEqual(response.status_code, 200)
            image = response.entity
            self.assertIn(tag, image.tags)
        self.assertEqual(len(image.tags), number_of_tags)
        for tag in tags:
            response = self.images_client.delete_tag(image.id_, tag)
            self.assertEqual(response.status_code, 204)
            response = self.images_client.get_image(image.id_)
            self.assertEqual(response.status_code, 200)
            image = response.entity
            self.assertNotIn(tag, image.tags)
        response = self.images_client.get_image(image.id_)
        self.assertEqual(response.status_code, 200)
        image = response.entity
        self.assertListEqual(image.tags, [])
    def test_delete_image_tags(self):
        """
        @summary: Delete image tags

        1) Given a previously created image, add image tag
        2) Verify that the response code is 204
        3) Get image
        4) Verify that the response code is 200
        5) Verify that the image tag is in the list of image tags
        6) Verify that there are number_of_tags in the list of image tags
        7) Repeat steps 1-5 for number_of_tags
        8) Delete image tag
        9) Verify that the response code is 204
        10) Get image
        11) Verify that the response code is 200
        12) Verify that the image tag is not in the list of image tags
        13) Repeat stesp 7-11 for number_of_tags
        14) Get image
        15) Verify that the response code is 200
        16) Verify that the list of image tags is empty
        """

        number_of_tags = 5
        tags = []
        image = self.images.pop()
        for t in range(number_of_tags):
            tag = rand_name('tag')
            tags.append(tag)
            response = self.images_client.add_tag(image.id_, tag)
            self.assertEqual(response.status_code, 204)
            response = self.images_client.get_image(image.id_)
            self.assertEqual(response.status_code, 200)
            image = response.entity
            self.assertIn(tag, image.tags)
        self.assertEqual(len(image.tags), number_of_tags)
        for tag in tags:
            response = self.images_client.delete_tag(image.id_, tag)
            self.assertEqual(response.status_code, 204)
            response = self.images_client.get_image(image.id_)
            self.assertEqual(response.status_code, 200)
            image = response.entity
            self.assertNotIn(tag, image.tags)
        response = self.images_client.get_image(image.id_)
        self.assertEqual(response.status_code, 200)
        image = response.entity
        self.assertListEqual(image.tags, [])
    def test_add_image_tag(self):
        """
        @summary: Add image tag and tags

        1) Given a previously created image, add image tag
        2) Verify that the response code is 204
        3) Get image
        4) Verify that the response code is 200
        5) Verify that the added tag is in the list of image tags
        6) For the same image, add image tags
        7) Verify that the response code is 204
        8) Get image
        9) Verify that the response code is 200
        10) Verify that the added tags are in the list of image tags
        """

        number_of_tags = 3
        tags = []
        tag = rand_name('tag')
        image = self.images.pop()
        response = self.images_client.add_tag(image.id_, tag)
        self.assertEqual(response.status_code, 204)
        response = self.images_client.get_image(image.id_)
        self.assertEqual(response.status_code, 200)
        image = response.entity
        self.assertListEqual(image.tags, [tag])
        tags.append(tag)
        for t in range(number_of_tags):
            tag = rand_name('tag')
            tags.append(tag)
            response = self.images_client.add_tag(image.id_, tag)
            self.assertEqual(response.status_code, 204)
        response = self.images_client.get_image(image.id_)
        self.assertEqual(response.status_code, 200)
        image = response.entity
        for added_tag in tags:
            self.assertIn(added_tag, image.tags)
    def test_add_image_tag(self):
        """
        @summary: Add image tag and tags

        1) Given a previously created image, add image tag
        2) Verify that the response code is 204
        3) Get image
        4) Verify that the response code is 200
        5) Verify that the added tag is in the list of image tags
        6) For the same image, add image tags
        7) Verify that the response code is 204
        8) Get image
        9) Verify that the response code is 200
        10) Verify that the added tags are in the list of image tags
        """

        number_of_tags = 3
        tags = []
        tag = rand_name('tag')
        image = self.images.pop()
        response = self.images_client.add_tag(image.id_, tag)
        self.assertEqual(response.status_code, 204)
        response = self.images_client.get_image(image.id_)
        self.assertEqual(response.status_code, 200)
        image = response.entity
        self.assertListEqual(image.tags, [tag])
        tags.append(tag)
        for t in range(number_of_tags):
            tag = rand_name('tag')
            tags.append(tag)
            response = self.images_client.add_tag(image.id_, tag)
            self.assertEqual(response.status_code, 204)
        response = self.images_client.get_image(image.id_)
        self.assertEqual(response.status_code, 200)
        image = response.entity
        for added_tag in tags:
            self.assertIn(added_tag, image.tags)