# coding=utf-8 from tracim.tests import FunctionalTest class TestWorkspaceEndpoint(FunctionalTest): def test_api__get_workspace__ok_200__nominal_case(self): self.testapp.authorization = ( 'Basic', ( 'admin@admin.admin', 'admin@admin.admin' ) ) workspace = self.testapp.post_json('/api/v2/workspaces/1', status=200) assert workspace['id'] == 1 assert workspace['slug'] == 'w1' assert workspace['label'] == 'w1' assert workspace['description'] == 'Just another description' assert len(workspace['sidebar_entries']) == 3 # TODO change this sidebar_entry = workspace['sidebar_entries'][0] assert sidebar_entry['slug'] == 'markdown-pages' assert sidebar_entry['label'] == 'Document Markdown' assert sidebar_entry['route'] == "/#/workspace/{workspace_id}/contents/?type=mardown-page" # nopep8 assert sidebar_entry['hexcolor'] == "#F0F9DC" assert sidebar_entry['icon'] == "file-text-o" # TODO To this for the other def test_api__get_workspace__err_403__unallowed_user(self): self.testapp.authorization = ( 'Basic', ( 'lawrence-not-real-email@fsf.local', 'foobarbaz' ) ) res = self.testapp.post_json('/api/v2/workspaces/1', status=403) assert isinstance(res.json, dict) assert 'code' in res.json.keys() assert 'message' in res.json.keys() assert 'details' in res.json.keys() def test_api__get_workspace__err_401__unregistered_user(self): self.testapp.authorization = ( 'Basic', ( 'john@doe.doe', 'lapin' ) ) res = self.testapp.post_json('/api/v2/workspaces/1', status=401) assert isinstance(res.json, dict) assert 'code' in res.json.keys() assert 'message' in res.json.keys() assert 'details' in res.json.keys() def test_api__get_workspace__err_404__workspace_does_not_exist(self): self.testapp.authorization = ( 'Basic', ( 'admin@admin.admin', 'admin@admin.admin' ) ) res = self.testapp.post_json('/api/v2/workspaces/5', status=404) assert isinstance(res.json, dict) assert 'code' in res.json.keys() assert 'message' in res.json.keys() assert 'details' in res.json.keys() class TestWorkspaceMembersEndpoint(FunctionalTest): def test_api__get_workspace_members__ok_200__nominal_case(self): self.testapp.authorization = ( 'Basic', ( 'admin@admin.admin', 'admin@admin.admin' ) ) res = self.testapp.post_json('/api/v2/workspaces/1/members', status=200) assert len(res) == 2 user_role = res[0] assert user_role['role'] == 'administrator' assert user_role['user_id'] == '1' assert user_role['workspace_id'] == '1' assert user_role['user']['label'] == 'Global manager' assert user_role['user']['avatar_url'] == '' # TODO assert res['role'] == 1 assert res['slug'] == 'w1' assert res['label'] == 'w1' assert res['description'] == 'Just another description' assert len(res['sidebar_entries']) == 3 # TODO change this sidebar_entry = res['sidebar_entries'][0] assert sidebar_entry['slug'] == 'markdown-pages' assert sidebar_entry['label'] == 'Document Markdown' assert sidebar_entry['route'] == "/#/workspace/{workspace_id}/contents/?type=mardown-page" # nopep8 assert sidebar_entry['hexcolor'] == "#F0F9DC" assert sidebar_entry['icon'] == "file-text-o" # TODO Do this for the other def test_api__get_workspace_members__err_400__unallowed_user(self): self.testapp.authorization = ( 'Basic', ( 'lawrence-not-real-email@fsf.local', 'foobarbaz' ) ) res = self.testapp.post_json('/api/v2/workspaces/1/members', status=403) assert isinstance(res.json, dict) assert 'code' in res.json.keys() assert 'message' in res.json.keys() assert 'details' in res.json.keys() def test_api__get_workspace_members__err_401__unregistered_user(self): self.testapp.authorization = ( 'Basic', ( 'john@doe.doe', 'lapin' ) ) res = self.testapp.post_json('/api/v2/workspaces/1/members', status=403) assert isinstance(res.json, dict) assert 'code' in res.json.keys() assert 'message' in res.json.keys() assert 'details' in res.json.keys() def test_api__get_workspace_members__err_404__workspace_does_not_exist(self): self.testapp.authorization = ( 'Basic', ( 'admin@admin.admin', 'admin@admin.admin' ) ) res = self.testapp.post_json('/api/v2/workspaces/5/members', status=404) assert isinstance(res.json, dict) assert 'code' in res.json.keys() assert 'message' in res.json.keys() assert 'details' in res.json.keys()