def setUp(self):
     super(TagsTests, self).setUp()
     self.tags = Tags("123")
class TagsTests(TestCase):
    """
    Tests for the Tags class
    """

    def setUp(self):
        super(TagsTests, self).setUp()
        self.tags = Tags("123")

    @patch.object(Tags, "_post")
    def test_create(self, mock_post):
        """
        Test .create()
        """
        self.tags.create("1000")
        mock_post.assert_called_once_with(
            request="create",
            uri="actions",
            params={
                "type": "tagit",
                "rate_count": 0,
                "rate_range": "day",
                "limit_count": 0,
                "limit_range": "day",
                "schedule": [],
                "enabled": True,
                "args": {"sn": "1000", "tag_sn": "1000"},
            },
        )

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

    @patch.object(Tags, "list")
    def test_get(self, mock_list):
        """
        Test .get()
        """
        mock_list.return_value = [{"args": {"sn": "1111"}}, {"args": {"sn": "2222"}}]
        response = self.tags.get("1111")

        self.assertEqual(response, [{"args": {"sn": "1111"}}])

    @patch.object(Tags, "list")
    def test_get_none(self, mock_list):
        """
        Test .get() with no matches
        """
        mock_list.return_value = [{"args": {"sn": "1111"}}, {"args": {"sn": "2222"}}]
        response = self.tags.get("3333")

        self.assertEqual(response, [])

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