def setUp(self):
     super(LabelsTests, self).setUp()
     self.label = Labels("123")
class LabelsTests(TestCase):
    """
    Tests for the Labels class
    """

    def setUp(self):
        super(LabelsTests, self).setUp()
        self.label = Labels("123")

    @patch.object(Labels, "_post")
    def test_create(self, mock_post):
        """
        Test .create()
        """
        self.label.create("newlabel", color="888888")
        mock_post.assert_called_once_with(
            request="create",
            uri="tags",
            params={
                "name": "newlabel",
                "title": "newlabel",
                "description": "newlabel",
                "appearance": {"color": "888888"},
            },
        )

    @patch.object(Labels, "_post")
    def test_list(self, mock_post):
        """
        Test .list()
        """
        self.label.list()
        mock_post.assert_called_once_with(request="list", uri="tags")

    @patch.object(Labels, "list")
    def test_get(self, mock_list):
        """
        Test .get()
        """
        mock_list.return_value = [{"name": "abcd"}, {"name": "label1"}]
        response = self.label.get("label1")

        self.assertEqual(response, [{"name": "label1"}])

    @patch.object(Labels, "list")
    def test_get_none(self, mock_list):
        """
        Test .get() with no matches
        """
        mock_list.return_value = [{"name": "abcd"}, {"name": "label1"}]
        response = self.label.get("other")

        self.assertEqual(response, [])

    @patch.object(Labels, "_post")
    def test_update(self, mock_post):
        """
        Test .update()
        """
        label = {
            "should not get through": "nope",
            "id": "d9d4596e-49e4-4135-b3b3-847f9e7c1f43",
            "name": "My Sandbox",
            "description": "My Sandbox",
            "title": "My Sandbox",
            "appearance": {"color": "888888"},
        }

        self.label.update(label)

        mock_post.assert_called_once_with(
            request="update",
            uri="tags",
            params={
                "id": "d9d4596e-49e4-4135-b3b3-847f9e7c1f43",
                "name": "My Sandbox",
                "description": "My Sandbox",
                "title": "My Sandbox",
                "appearance": {"color": "888888"},
            },
        )

    @patch.object(Labels, "_post")
    def test_delete(self, mock_post):
        """
        Test .delete()
        """
        self.label.delete("006d95a8-4fac-42c4-90ed-c3c34978de3e")
        mock_post.assert_called_once_with(
            request="delete", uri="tags", params={"id": "006d95a8-4fac-42c4-90ed-c3c34978de3e"}
        )