Example #1
0
class YggAuthTest(unittest.TestCase):
    def setUp(self):
        self.ygg = YggAuth()
        self.assertFalse(self.ygg.username)
        self.assertFalse(self.ygg.password)
        self.assertFalse(self.ygg.client_token)
        self.assertFalse(self.ygg.access_token)

    def test_authenticate_success(self, ygg_req):
        ygg_req.return_value = {"accessToken": "myaccess", "clientToken": "mytoken"}

        res = self.ygg.authenticate("user", "pass", "clienttoken")

        ygg_req.assert_called_once_with(
            "/authenticate",
            {
                "agent": {"name": "Minecraft", "version": 1},
                "username": "******",
                "password": "******",
                "clientToken": "clienttoken",
            },
        )

        self.assertEqual(self.ygg.username, "user")
        self.assertEqual(self.ygg.password, "pass")
        self.assertEqual(self.ygg.client_token, "mytoken")
        self.assertEqual(self.ygg.access_token, "myaccess")

        self.assertEqual(res, ygg_req.return_value)

    def test_authenticate_failure(self, ygg_req):
        ygg_req.return_value = {"error": 1}

        res = self.ygg.authenticate("user", "pass", "clienttoken")

        ygg_req.assert_called_once_with(
            "/authenticate",
            {
                "agent": {"name": "Minecraft", "version": 1},
                "username": "******",
                "password": "******",
                "clientToken": "clienttoken",
            },
        )

        self.assertEqual(self.ygg.username, "user")
        self.assertEqual(self.ygg.password, "pass")
        self.assertEqual(self.ygg.client_token, "clienttoken")
        self.assertEqual(self.ygg.access_token, None)

        self.assertEqual(res, ygg_req.return_value)

    def test_refresh_success(self, ygg_req):
        ygg_req.return_value = {"accessToken": "myaccess", "clientToken": "mytoken"}

        res = self.ygg.refresh("clienttoken", "accesstoken")

        ygg_req.assert_called_once_with("/refresh", {"accessToken": "accesstoken", "clientToken": "clienttoken"})

        self.assertEqual(self.ygg.username, None)
        self.assertEqual(self.ygg.password, None)
        self.assertEqual(self.ygg.client_token, "mytoken")
        self.assertEqual(self.ygg.access_token, "myaccess")

        self.assertEqual(res, ygg_req.return_value)

    def test_refresh_failure(self, ygg_req):
        ygg_req.return_value = {"error": 1}

        res = self.ygg.refresh("clienttoken", "accesstoken")

        ygg_req.assert_called_once_with("/refresh", {"accessToken": "accesstoken", "clientToken": "clienttoken"})

        self.assertEqual(self.ygg.username, None)
        self.assertEqual(self.ygg.password, None)
        self.assertEqual(self.ygg.client_token, "clienttoken")
        self.assertEqual(self.ygg.access_token, "accesstoken")

        self.assertEqual(res, ygg_req.return_value)

    def test_signout(self, ygg_req):
        ygg_req.return_value = {"whatever": "dict"}

        res = self.ygg.signout("user", "pass")

        ygg_req.assert_called_once_with("/signout", {"username": "******", "password": "******"})

        self.assertEqual(self.ygg.username, "user")
        self.assertEqual(self.ygg.password, "pass")
        self.assertEqual(self.ygg.client_token, None)
        self.assertEqual(self.ygg.access_token, None)

        self.assertEqual(res, ygg_req.return_value)

    def test_invalidate(self, ygg_req):
        ygg_req.return_value = {"whatever": "dict"}

        res = self.ygg.invalidate("clienttoken", "accesstoken")

        ygg_req.assert_called_once_with("/invalidate", {"clientToken": "clienttoken", "accessToken": "accesstoken"})

        self.assertEqual(self.ygg.username, None)
        self.assertEqual(self.ygg.password, None)
        self.assertEqual(self.ygg.client_token, "clienttoken")
        self.assertEqual(self.ygg.access_token, "accesstoken")

        self.assertEqual(res, ygg_req.return_value)

    def test_validate(self, ygg_req):
        ygg_req.return_value = {"whatever": "dict"}

        res = self.ygg.validate("accesstoken")

        ygg_req.assert_called_once_with("/validate", {"accessToken": "accesstoken"})

        self.assertEqual(self.ygg.username, None)
        self.assertEqual(self.ygg.password, None)
        self.assertEqual(self.ygg.client_token, None)
        self.assertEqual(self.ygg.access_token, "accesstoken")

        self.assertEqual(res, ygg_req.return_value)