Skip to content

Commit

Permalink
add tests and run black
Browse files Browse the repository at this point in the history
  • Loading branch information
mldzs committed Mar 26, 2021
1 parent 18086ae commit eda7f86
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 9 deletions.
13 changes: 6 additions & 7 deletions bothub/api/v2/nlp/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,9 @@ def evaluate_results_score(self, request, **kwargs):
return Response({})


class RepositoryAuthorizationAutomaticEvaluateViewSet(mixins.RetrieveModelMixin, GenericViewSet):
class RepositoryAuthorizationAutomaticEvaluateViewSet(
mixins.RetrieveModelMixin, GenericViewSet
):
queryset = RepositoryAuthorization.objects
serializer_class = NLPSerializer
permission_classes = [AllowAny]
Expand All @@ -520,18 +522,15 @@ def retrieve(self, request, *args, **kwargs):

if repository_version:
repository_version_language = repository.get_specific_version_id(
repository_version=repository_version,
language=language
repository_version=repository_version, language=language
)
else:
repository_version_language = repository.get_specific_version_language(
language=language
)

try:
repository.validate_if_can_run_automatic_evaluate(
language=language
)
repository.validate_if_can_run_automatic_evaluate(language=language)
can_run_automatic_evaluate = True
except ValidationError:
can_run_automatic_evaluate = False
Expand All @@ -545,7 +544,7 @@ def retrieve(self, request, *args, **kwargs):
"use_name_entities": repository.use_name_entities,
"use_competing_intents": repository.use_competing_intents,
"use_analyze_char": repository.use_analyze_char,
"can_run_automatic_evaluate": can_run_automatic_evaluate
"can_run_automatic_evaluate": can_run_automatic_evaluate,
}
)

Expand Down
6 changes: 4 additions & 2 deletions bothub/api/v2/routers.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
RepositoryAuthorizationTrainViewSet,
RepositoryNLPLogsViewSet,
RepositoryAuthorizationKnowledgeBaseViewSet,
RepositoryAuthorizationExamplesViewSet, RepositoryAuthorizationAutomaticEvaluateViewSet,
RepositoryAuthorizationExamplesViewSet,
RepositoryAuthorizationAutomaticEvaluateViewSet,
)
from .nlp.views import RepositoryAuthorizationParseViewSet
from .nlp.views import RepositoryAuthorizationInfoViewSet
Expand Down Expand Up @@ -197,7 +198,8 @@ def get_lookup_regex(self, viewset, lookup_prefix=""):
"repository/nlp/authorization/evaluate", RepositoryAuthorizationEvaluateViewSet
)
router.register(
"repository/nlp/authorization/automatic-evaluate", RepositoryAuthorizationAutomaticEvaluateViewSet
"repository/nlp/authorization/automatic-evaluate",
RepositoryAuthorizationAutomaticEvaluateViewSet,
)
router.register("repository/nlp/authorization/langs", NLPLangsViewSet)
router.register(
Expand Down
71 changes: 71 additions & 0 deletions bothub/api/v2/tests/test_nlp.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
RepositoryAuthorizationTrainViewSet,
RepositoryAuthorizationKnowledgeBaseViewSet,
RepositoryAuthorizationExamplesViewSet,
RepositoryAuthorizationAutomaticEvaluateViewSet,
)
from bothub.api.v2.nlp.views import RepositoryAuthorizationInfoViewSet
from bothub.common import languages
Expand Down Expand Up @@ -524,3 +525,73 @@ def test_get_examples(self):
)
self.assertEqual(response.data.get("count"), 3)
self.assertEqual(response.data.get("results")[0].get("text"), "goodbye")


class RepositoryAuthorizationAutomaticEvaluateTestCase(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=3
)

self.repository_version = RepositoryVersion.objects.create(
repository=self.repository, name="test"
)

self.repository_version_language = RepositoryVersionLanguage.objects.create(
repository_version=self.repository_version,
language=languages.LANGUAGE_EN,
algorithm="neural_network_internal",
)

def request(self, token, repository_version=""):
authorization_header = {"HTTP_AUTHORIZATION": "Bearer {}".format(token)}
request = self.factory.get(
"/v2/repository/nlp/authorization/automatic-evaluate/{}/".format(token),
{
"repository_version": repository_version,
"language": languages.LANGUAGE_EN,
},
**authorization_header
)
response = RepositoryAuthorizationAutomaticEvaluateViewSet.as_view(
{"get": "retrieve"}
)(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),
repository_version=self.repository_version.pk,
)
self.assertEqual(response.status_code, status.HTTP_200_OK)

def test_not_auth(self):
response, content_data = self.request(
str(uuid.uuid4()), repository_version=self.repository_version.pk
)
self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)

def test_route(self):
response, content_data = self.request(
str(self.repository_authorization.uuid),
repository_version=self.repository_version.pk,
)
self.assertFalse(content_data.get("can_run_automatic_evaluate"))
self.assertEqual(
content_data.get("repository_version_language_id"),
self.repository_version_language.pk,
)

0 comments on commit eda7f86

Please sign in to comment.