def test_get_context_data(self, get_mock): request = RequestFactory().get("/") request.session = {"next_url": "/"} request.META["HTTP_HOST"] = "localhost:3333" view = Login() view.request = request response_mock = Mock(status_code=200) response_mock.json.return_value = { "name": "oauth", "data": { "authorizeUrl": "http://something.com/?redirect=__redirect_url__" } } get_mock.return_value = response_mock data = view.get_context_data() self.assertDictEqual( data["scheme_info"], { "name": "oauth", "data": { "authorizeUrl": "http://something.com/?redirect=__redirect_url__" }, }) self.assertEqual( data["authorize_url"], "http://something.com/?redirect=http://localhost:3333/auth/callback/" )
def test_get_context_data(self, get_mock): request = RequestFactory().get("/") request.session = {"next_url": "/"} request.META["HTTP_HOST"] = "localhost:3333" view = Login() view.request = request response_mock = Mock(status_code=200) response_mock.json.return_value = { "name": "oauth", "data": { "authorizeUrl": "http://something.com/?redirect=__redirect_url__" } } get_mock.return_value = response_mock data = view.get_context_data() self.assertDictEqual(data["scheme_info"], { "name": "oauth", "data": { "authorizeUrl": "http://something.com/?redirect=__redirect_url__" }, }) self.assertEqual( data["authorize_url"], "http://something.com/?redirect=http://localhost:3333/auth/callback/" )
def test_should_set_token_in_the_session(self, post): response_mock = Mock(status_code=200) response_mock.json.return_value = {"token": "my beautiful token"} post.return_value = response_mock data = {"username": "******", "password": "******"} request = RequestFactory().post("/", data) request.session = {} Login.as_view()(request) self.assertEqual("type my beautiful token", request.session["tsuru_token"])
def test_should_set_username_in_the_session(self, post): response_mock = Mock(status_code=200) response_mock.json.return_value = {"token": "my beautiful token"} post.return_value = response_mock data = {"username": "******", "password": "******"} request = RequestFactory().post("/", data) request.session = {} Login.as_view()(request) self.assertEqual(data["username"], request.session["username"])
def test_should_send_request_post_to_tsuru_with_args_expected( self, get_mock, post): data = {"username": "******", "password": "******"} request = RequestFactory().post("/", data) request.session = {"next_url": "/"} expected_url = "%s/users/[email protected]/tokens" % settings.TSURU_HOST Login.as_view()(request) self.assertEqual(1, post.call_count) post.assert_called_with(expected_url, data={"password": "******"})
def test_should_send_request_post_to_tsuru_with_args_expected(self, get_mock, post): data = {"username": "******", "password": "******"} request = RequestFactory().post("/", data) request.session = {"next_url": "/"} expected_url = "%s/users/[email protected]/tokens" % settings.TSURU_HOST Login.as_view()(request) self.assertEqual(1, post.call_count) post.assert_called_with(expected_url, data={"password": "******"})
def test_set_permissions_in_session(self, post): response_mock = Mock(status_code=200) response_mock.json.return_value = {"token": "my beautiful token"} post.return_value = response_mock data = {"username": "******", "password": "******"} request = RequestFactory().post("/", data) request.session = {} Login.as_view()(request) self.assertDictEqual({"healing": False}, request.session["permissions"])
def test_set_healing_permission_in_session(self, post): url = "{}/users/info".format(settings.TSURU_HOST) httpretty.register_uri( httpretty.GET, url, status=200, body='{"Permissions": [{"Name": "healing.read"}]}' ) response_mock = Mock(status_code=200) response_mock.json.return_value = {"token": "my beautiful token"} post.return_value = response_mock data = {"username": "******", "password": "******"} request = RequestFactory().post("/", data) request.session = {} Login.as_view()(request) self.assertDictEqual({"healing": True, "admin": False}, request.session["permissions"])
def test_scheme_info(self, get_mock): view = Login() expected_url = "{}/auth/scheme".format(settings.TSURU_HOST) self.assertDictEqual(view.scheme_info(), {}) get_mock.assert_called_with(expected_url) response_mock = Mock(status_code=200) response_mock.json.return_value = {"name": "oauth"} get_mock.return_value = response_mock self.assertDictEqual(view.scheme_info(), {"name": "oauth"}) get_mock.assert_called_with(expected_url)
def test_login_get(self, get_mock): request = RequestFactory().get("/") request.session = {"next_url": "/"} response = Login.as_view()(request) self.assertIn("auth/login.html", response.template_name) form = response.context_data["form"] self.assertIsInstance(form, LoginForm)
def test_get_context_data_with_data_is_none(self, get_mock): request = RequestFactory().get("/") request.META["HTTP_HOST"] = "localhost:3333" request.session = {"next_url": "/"} view = Login() view.request = request response_mock = Mock(status_code=200) response_mock.json.return_value = {"name": "native", "data": None} get_mock.return_value = response_mock data = view.get_context_data() self.assertDictEqual(data["scheme_info"], { "name": "native", "data": None, })
def test_set_healing_permission_in_session(self, post): url = "{}/users/info".format(settings.TSURU_HOST) httpretty.register_uri( httpretty.GET, url, status=200, body='{"Permissions": [{"Name": "healing.read"}]}') response_mock = Mock(status_code=200) response_mock.json.return_value = {"token": "my beautiful token"} post.return_value = response_mock data = {"username": "******", "password": "******"} request = RequestFactory().post("/", data) request.session = {} Login.as_view()(request) self.assertDictEqual({ "healing": True, "admin": False }, request.session["permissions"])
def test_should_validate_data_from_post(self, get_mock): data = {"username": "******", "password": ""} request = RequestFactory().post("/", data) request.session = {"next_url": "/"} response = Login.as_view()(request) form = response.context_data["form"] self.assertIn("auth/login.html", response.template_name) self.assertIsInstance(form, LoginForm) self.assertEqual("invalid name", form.data["username"])
def test_redirect_to_apps(self, post): response_mock = Mock(status_code=200) response_mock.json.return_value = {"token": "my beautiful token"} post.return_value = response_mock data = {"username": "******", "password": "******"} request = RequestFactory().post("/", data) request.session = {} response = Login.as_view()(request) self.assertIsInstance(response, HttpResponseRedirect) self.assertEqual("/apps", response["Location"])
def test_get_context_data_with_data_is_none(self, get_mock): request = RequestFactory().get("/") request.META["HTTP_HOST"] = "localhost:3333" request.session = {"next_url": "/"} view = Login() view.request = request response_mock = Mock(status_code=200) response_mock.json.return_value = { "name": "native", "data": None } get_mock.return_value = response_mock data = view.get_context_data() self.assertDictEqual(data["scheme_info"], { "name": "native", "data": None, })