Unverified Commit 47809d11 authored by Peter Stanko's avatar Peter Stanko
Browse files

Client test

parent 9d681518
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ from flask_restplus import Namespace, Resource

from portal import logger
from portal.database.models import ClientType
from portal.rest.schemas import users_schema, worker_schema
from portal.rest.schemas import user_schema, worker_schema
from portal.service import permissions

client_namespace = Namespace('client')
@@ -18,6 +18,5 @@ class ClientController(Resource):
    def get(self):
        perm_service = permissions.PermissionsService()
        client = perm_service.client_owner
        schema = users_schema if client.type == ClientType.USER else worker_schema
        schema = user_schema if client.type == ClientType.USER else worker_schema
        return schema.dump(client)[0], 200
+2 −0
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ class UserSchema(BaseSchema, Schema):
    email = fields.Email(required=True)
    username = fields.Str(required=True)
    name = fields.Str()
    type = fields.Str()
    is_admin = fields.Bool(default=False, missing=False)
    submissions = NESTED['submissions']
    review_items = NESTED['reviewitems']
@@ -278,6 +279,7 @@ class WorkerSchema(BaseSchema, Schema):
    """Component Schema
    """
    name = fields.Str()
    type = fields.Str()
    url = fields.Str(allow_none=True)
    tags = fields.Str(allow_none=True)
    portal_secret = fields.Str(allow_none=True)
+47 −0
Original line number Diff line number Diff line
import json

import pytest

from tests.rest import utils


@pytest.fixture
def student_credentials():
    return json.dumps({
        "type": "username_password",
        "identifier": "student1",
        "secret": "123456"
    })


@pytest.fixture
def worker_credentials():
    return json.dumps({
        "type": "secret",
        "identifier": "executor",
        "secret": "executor_secret"
    })


def test_client_detail_using_student_cred(client, student_credentials):
    path = f'/client'
    response = utils.make_request(
        client, path, 'get', credentials=student_credentials)
    print(f"Response: {response.data}")
    assert response.status_code == 200
    assert response.mimetype == 'application/json'
    data = response.json
    assert data['username'] == 'student1'
    assert data['type'] == 'ClientType.USER'


def test_client_detail_using_executor_cred(client, worker_credentials):
    path = f'/client'
    response = utils.make_request(
        client, path, 'get', credentials=worker_credentials)
    print(f"Response: {response.data}")
    assert response.status_code == 200
    assert response.mimetype == 'application/json'
    data = response.json
    assert data['name'] == 'executor'
    assert data['type'] == 'ClientType.WORKER'