test_workspaces.py 5.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. # coding=utf-8
  2. from tracim.tests import FunctionalTest
  3. class TestWorkspaceEndpoint(FunctionalTest):
  4. def test_api__get_workspace__ok_200__nominal_case(self):
  5. self.testapp.authorization = (
  6. 'Basic',
  7. (
  8. 'admin@admin.admin',
  9. 'admin@admin.admin'
  10. )
  11. )
  12. workspace = self.testapp.post_json('/api/v2/workspaces/1', status=200)
  13. assert workspace['id'] == 1
  14. assert workspace['slug'] == 'w1'
  15. assert workspace['label'] == 'w1'
  16. assert workspace['description'] == 'Just another description'
  17. assert len(workspace['sidebar_entries']) == 3 # TODO change this
  18. sidebar_entry = workspace['sidebar_entries'][0]
  19. assert sidebar_entry['slug'] == 'markdown-pages'
  20. assert sidebar_entry['label'] == 'Document Markdown'
  21. assert sidebar_entry['route'] == "/#/workspace/{workspace_id}/contents/?type=mardown-page" # nopep8
  22. assert sidebar_entry['hexcolor'] == "#F0F9DC"
  23. assert sidebar_entry['icon'] == "file-text-o"
  24. # TODO To this for the other
  25. def test_api__get_workspace__err_403__unallowed_user(self):
  26. self.testapp.authorization = (
  27. 'Basic',
  28. (
  29. 'lawrence-not-real-email@fsf.local',
  30. 'foobarbaz'
  31. )
  32. )
  33. res = self.testapp.post_json('/api/v2/workspaces/1', status=403)
  34. assert isinstance(res.json, dict)
  35. assert 'code' in res.json.keys()
  36. assert 'message' in res.json.keys()
  37. assert 'details' in res.json.keys()
  38. def test_api__get_workspace__err_401__unregistered_user(self):
  39. self.testapp.authorization = (
  40. 'Basic',
  41. (
  42. 'john@doe.doe',
  43. 'lapin'
  44. )
  45. )
  46. res = self.testapp.post_json('/api/v2/workspaces/1', status=401)
  47. assert isinstance(res.json, dict)
  48. assert 'code' in res.json.keys()
  49. assert 'message' in res.json.keys()
  50. assert 'details' in res.json.keys()
  51. def test_api__get_workspace__err_404__workspace_does_not_exist(self):
  52. self.testapp.authorization = (
  53. 'Basic',
  54. (
  55. 'admin@admin.admin',
  56. 'admin@admin.admin'
  57. )
  58. )
  59. res = self.testapp.post_json('/api/v2/workspaces/5', status=404)
  60. assert isinstance(res.json, dict)
  61. assert 'code' in res.json.keys()
  62. assert 'message' in res.json.keys()
  63. assert 'details' in res.json.keys()
  64. class TestWorkspaceMembersEndpoint(FunctionalTest):
  65. def test_api__get_workspace_members__ok_200__nominal_case(self):
  66. self.testapp.authorization = (
  67. 'Basic',
  68. (
  69. 'admin@admin.admin',
  70. 'admin@admin.admin'
  71. )
  72. )
  73. res = self.testapp.post_json('/api/v2/workspaces/1/members', status=200)
  74. assert len(res) == 2
  75. user_role = res[0]
  76. assert user_role['role'] == 'administrator'
  77. assert user_role['user_id'] == '1'
  78. assert user_role['workspace_id'] == '1'
  79. assert user_role['user']['label'] == 'Global manager'
  80. assert user_role['user']['avatar_url'] == '' # TODO
  81. assert res['role'] == 1
  82. assert res['slug'] == 'w1'
  83. assert res['label'] == 'w1'
  84. assert res['description'] == 'Just another description'
  85. assert len(res['sidebar_entries']) == 3 # TODO change this
  86. sidebar_entry = res['sidebar_entries'][0]
  87. assert sidebar_entry['slug'] == 'markdown-pages'
  88. assert sidebar_entry['label'] == 'Document Markdown'
  89. assert sidebar_entry['route'] == "/#/workspace/{workspace_id}/contents/?type=mardown-page" # nopep8
  90. assert sidebar_entry['hexcolor'] == "#F0F9DC"
  91. assert sidebar_entry['icon'] == "file-text-o"
  92. # TODO Do this for the other
  93. def test_api__get_workspace_members__err_400__unallowed_user(self):
  94. self.testapp.authorization = (
  95. 'Basic',
  96. (
  97. 'lawrence-not-real-email@fsf.local',
  98. 'foobarbaz'
  99. )
  100. )
  101. res = self.testapp.post_json('/api/v2/workspaces/1/members', status=403)
  102. assert isinstance(res.json, dict)
  103. assert 'code' in res.json.keys()
  104. assert 'message' in res.json.keys()
  105. assert 'details' in res.json.keys()
  106. def test_api__get_workspace_members__err_401__unregistered_user(self):
  107. self.testapp.authorization = (
  108. 'Basic',
  109. (
  110. 'john@doe.doe',
  111. 'lapin'
  112. )
  113. )
  114. res = self.testapp.post_json('/api/v2/workspaces/1/members', status=403)
  115. assert isinstance(res.json, dict)
  116. assert 'code' in res.json.keys()
  117. assert 'message' in res.json.keys()
  118. assert 'details' in res.json.keys()
  119. def test_api__get_workspace_members__err_404__workspace_does_not_exist(self):
  120. self.testapp.authorization = (
  121. 'Basic',
  122. (
  123. 'admin@admin.admin',
  124. 'admin@admin.admin'
  125. )
  126. )
  127. res = self.testapp.post_json('/api/v2/workspaces/5/members', status=404)
  128. assert isinstance(res.json, dict)
  129. assert 'code' in res.json.keys()
  130. assert 'message' in res.json.keys()
  131. assert 'details' in res.json.keys()