Skip to content

Commit

Permalink
Merge 77e6bb1 into 2de3740
Browse files Browse the repository at this point in the history
  • Loading branch information
mldzs committed Mar 24, 2021
2 parents 2de3740 + 77e6bb1 commit 123f924
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
17 changes: 17 additions & 0 deletions bothub/api/v2/nlp/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,23 @@ def retrieve(self, request, *args, **kwargs):

return Response({"intents": serializer})

@action(detail=True, methods=["GET"], url_name="get_current_configuration")
def get_current_configuration(self, request, **kwargs):
check_auth(request)
repository_authorization = self.get_object()
repository = repository_authorization.repository

return Response(
{
"language": repository.language,
"user_id": repository_authorization.user.pk,
"algorithm": repository.algorithm,
"use_name_entities": repository.use_name_entities,
"use_competing_intents": repository.use_competing_intents,
"use_analyze_char": repository.use_analyze_char,
}
)


class RepositoryAuthorizationEvaluateViewSet(mixins.RetrieveModelMixin, GenericViewSet):
queryset = RepositoryAuthorization.objects
Expand Down
55 changes: 55 additions & 0 deletions bothub/api/v2/tests/test_nlp.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,3 +312,58 @@ def test_get_examples_with_non_existent_intent_filter(self):
str(self.repository_authorization.uuid), "non-existent"
)
self.assertEqual(response.data.get("count"), 0)


class InfoGetCurrentConfigurationTestCase(TestCase):
def setUp(self):
self.factory = RequestFactory()

self.owner, self.owner_token = create_user_and_token("owner")
self.user, self.user_token = create_user_and_token()

self.repository = Repository.objects.create(
owner=self.owner,
name="Testing",
slug="test",
language=languages.LANGUAGE_EN,
)

self.repository_authorization = RepositoryAuthorization.objects.create(
user=self.user,
repository=self.repository,
role=RepositoryAuthorization.ROLE_ADMIN,
)

def request(self, token):
authorization_header = {"HTTP_AUTHORIZATION": "Bearer {}".format(token)}
request = self.factory.get(
"/v2/repository/nlp/authorization/info/{}/get_current_configuration".format(
token
),
**authorization_header
)
response = RepositoryAuthorizationInfoViewSet.as_view(
{"get": "get_current_configuration"}
)(request, pk=token)
response.render()
content_data = json.loads(response.content)
return (response, content_data)

def test_ok(self):
response, content_data = self.request(str(self.repository_authorization.uuid))
self.assertEqual(response.status_code, status.HTTP_200_OK)

def test_not_perm(self):
response, content_data = self.request(str(uuid.uuid4()))
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)

def test_get_current_configuration(self):
response, content_data = self.request(str(self.repository_authorization.uuid))
self.assertEquals(content_data.get("language"), languages.LANGUAGE_EN)
self.assertEquals(
content_data.get("user_id"), self.repository_authorization.user.pk
)
self.assertEquals(content_data.get("algorithm"), self.repository.algorithm)
self.assertFalse(content_data.get("use_name_entities"))
self.assertFalse(content_data.get("use_competing_intents"))
self.assertFalse(content_data.get("use_analyze_char"))

0 comments on commit 123f924

Please sign in to comment.