Exemplo n.º 1
0
    def test_autorized_schema(self):
        self.login_user()
        url = compat.reverse("bananas:v1.0:schema", kwargs={"format": ".json"})
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)

        self.check_valid_schema(response.json())
Exemplo n.º 2
0
 def assert_unauthorized(self, url):
     response = self.client.get(url)
     self.assertEqual(response.status_code, 302)
     self.assertRedirects(
         response,
         "{}?next={}".format(compat.reverse("admin:login"), url),
         fetch_redirect_response=False,
     )
Exemplo n.º 3
0
    def test_unautorized_schema(self):
        url = compat.reverse("bananas:v1.0:schema", kwargs={"format": ".json"})
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)

        data = response.json()
        self.assertIn("/bananas/login/", data["paths"])
        action = data["paths"]["/bananas/login/"]["post"]
        self.assertEqual(action["operationId"], "bananas.login:create")
        self.assertEqual(action["summary"], "Log in")
        self.assertNotIn("navigation", action["tags"])
Exemplo n.º 4
0
    def test_me(self):
        user = self.login_user()
        perm = Permission.objects.all().first()
        group = Group.objects.create(name="spam")
        user.user_permissions.add(perm)
        user.groups.add(group)

        url = compat.reverse("bananas:v1.0:bananas.me-list")
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)

        data = response.json()
        self.assertEqual(data["username"], user.username)
        self.assertIn("spam", data["groups"])
        self.assertGreater(len(data["permissions"]), 0)
Exemplo n.º 5
0
    def test_login(self):
        user = self.create_user()
        url = compat.reverse("bananas:v1.0:bananas.login-list")

        # Fail
        response = self.client.post(
            url, data={"username": user.username, "password": "******"}
        )
        self.assertEqual(response.status_code, 400)

        # Success
        response = self.client.post(
            url, data={"username": user.username, "password": "******"}
        )
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json()["username"], user.username)
        self.assertAuthorized()
Exemplo n.º 6
0
    def test_change_password(self):
        user = self.login_user()
        url = compat.reverse("bananas:v1.0:bananas.change_password-list")

        response = self.client.post(
            url,
            data={
                "old_password": "******",
                "new_password1": "foo",
                "new_password2": "foo",
            },
        )
        self.assertEqual(response.status_code, 400)

        response = self.client.post(
            url,
            data={
                "old_password": "******",
                "new_password1": "foo",
                "new_password2": "bar",
            },
        )
        self.assertEqual(response.status_code, 400)

        response = self.client.post(
            url,
            data={
                "old_password": "******",
                "new_password1": "foobar123",
                "new_password2": "foobar123",
            },
        )
        self.assertEqual(response.status_code, 204)

        self.client.logout()
        self.client.login(username=user.username, password="******")
        self.assertNotAuthorized()

        self.client.login(username=user.username, password="******")
        self.assertAuthorized()
Exemplo n.º 7
0
    def test_autorized_schema(self):
        self.login_user()
        url = compat.reverse("bananas:v1.0:schema", kwargs={"format": ".json"})
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)

        data = response.json()
        self.assertNotIn("/bananas/login/", data["paths"])
        self.assertIn("/bananas/logout/", data["paths"])
        action = data["paths"]["/bananas/logout/"]["post"]
        self.assertEqual(action["operationId"], "bananas.logout:create")
        self.assertEqual(action["summary"], "Log out")
        self.assertNotIn("navigation", action["tags"])

        action = data["paths"]["/tests/ham/"]["get"]
        self.assertIn("crud", action["tags"])
        self.assertIn("navigation", action["tags"])

        action = data["paths"]["/bananas/me/"]["get"]
        self.assertNotIn("navigation", action["tags"])

        action = data["paths"]["/tests/foo/baz/"]
        self.assertEqual(action["get"]["operationId"], "tests.foo:baz.read")
        self.assertEqual(action["post"]["operationId"], "tests.foo:baz.create")
Exemplo n.º 8
0
 def bar(self, request, pk):
     url = reverse("bananas:v1.0:example.user-bar", kwargs={"pk": pk})
     return Response(
         "Just a simple extra detail action, url = {url}".format(url=url))
Exemplo n.º 9
0
 def setUp(self):
     super().setUp()
     self.detail_url = compat.reverse("admin:tests_simple")
     self.custom_url = compat.reverse("admin:tests_simple_custom")
     self.special_url = compat.reverse("admin:tests_simple_special")
Exemplo n.º 10
0
 def assertNotAuthorized(self):
     url = compat.reverse("admin:index")
     response = self.client.get(url)
     self.assertEqual(response.status_code, 302)  # Redirect to login
Exemplo n.º 11
0
 def assertAuthorized(self):
     url = compat.reverse("admin:index")
     response = self.client.get(url)
     self.assertEqual(response.status_code, 200)
Exemplo n.º 12
0
 def test_logout(self):
     self.login_user()
     url = compat.reverse("bananas:v1.0:bananas.logout-list")
     response = self.client.post(url)
     self.assertEqual(response.status_code, 204)
     self.assertNotAuthorized()