test_user.py 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. # coding=utf-8
  2. from tracim.tests import FunctionalTest
  3. from tracim.fixtures.content import Content as ContentFixtures
  4. from tracim.fixtures.users_and_groups import Base as BaseFixture
  5. class TestUserWorkspaceEndpoint(FunctionalTest):
  6. fixtures = [BaseFixture, ContentFixtures]
  7. def test_api__get_user_workspaces__ok_200__nominal_case(self):
  8. self.testapp.authorization = (
  9. 'Basic',
  10. (
  11. 'admin@admin.admin',
  12. 'admin@admin.admin'
  13. )
  14. )
  15. res = self.testapp.get('/api/v2/users/1/workspaces', status=200)
  16. res = res.json_body
  17. workspace = res[0]
  18. assert workspace['id'] == 1
  19. assert workspace['slug'] == 'w1'
  20. assert workspace['label'] == 'w1'
  21. assert workspace['description'] == 'This is a workspace'
  22. assert len(workspace['sidebar_entries']) == 7 # TODO change this
  23. sidebar_entry = workspace['sidebar_entries'][0]
  24. assert sidebar_entry['slug'] == 'dashboard'
  25. assert sidebar_entry['label'] == 'Dashboard'
  26. assert sidebar_entry['route'] == '/#/workspaces/1/dashboard' # nopep8
  27. assert sidebar_entry['hexcolor'] == "#252525"
  28. assert sidebar_entry['icon'] == ""
  29. sidebar_entry = workspace['sidebar_entries'][1]
  30. assert sidebar_entry['slug'] == 'contents/all'
  31. assert sidebar_entry['label'] == 'All Contents'
  32. assert sidebar_entry['route'] == "/#/workspaces/1/contents" # nopep8
  33. assert sidebar_entry['hexcolor'] == "#fdfdfd"
  34. assert sidebar_entry['icon'] == ""
  35. sidebar_entry = workspace['sidebar_entries'][2]
  36. assert sidebar_entry['slug'] == 'contents/pagehtml'
  37. assert sidebar_entry['label'] == 'Text Documents'
  38. assert sidebar_entry['route'] == '/#/workspaces/1/contents?type=pagehtml' # nopep8
  39. assert sidebar_entry['hexcolor'] == "#3f52e3"
  40. assert sidebar_entry['icon'] == "file-text-o"
  41. sidebar_entry = workspace['sidebar_entries'][3]
  42. assert sidebar_entry['slug'] == 'contents/pagemarkdownplus'
  43. assert sidebar_entry['label'] == 'Rich Markdown Files'
  44. assert sidebar_entry['route'] == "/#/workspaces/1/contents?type=pagemarkdownplus" # nopep8
  45. assert sidebar_entry['hexcolor'] == "#f12d2d"
  46. assert sidebar_entry['icon'] == "file-code"
  47. sidebar_entry = workspace['sidebar_entries'][4]
  48. assert sidebar_entry['slug'] == 'contents/files'
  49. assert sidebar_entry['label'] == 'Files'
  50. assert sidebar_entry['route'] == "/#/workspaces/1/contents?type=file" # nopep8
  51. assert sidebar_entry['hexcolor'] == "#FF9900"
  52. assert sidebar_entry['icon'] == "paperclip"
  53. sidebar_entry = workspace['sidebar_entries'][5]
  54. assert sidebar_entry['slug'] == 'contents/threads'
  55. assert sidebar_entry['label'] == 'Threads'
  56. assert sidebar_entry['route'] == "/#/workspaces/1/contents?type=thread" # nopep8
  57. assert sidebar_entry['hexcolor'] == "#ad4cf9"
  58. assert sidebar_entry['icon'] == "comments-o"
  59. sidebar_entry = workspace['sidebar_entries'][6]
  60. assert sidebar_entry['slug'] == 'calendar'
  61. assert sidebar_entry['label'] == 'Calendar'
  62. assert sidebar_entry['route'] == "/#/workspaces/1/calendar" # nopep8
  63. assert sidebar_entry['hexcolor'] == "#757575"
  64. assert sidebar_entry['icon'] == "calendar-alt"
  65. def test_api__get_user_workspaces__err_403__unallowed_user(self):
  66. self.testapp.authorization = (
  67. 'Basic',
  68. (
  69. 'lawrence-not-real-email@fsf.local',
  70. 'foobarbaz'
  71. )
  72. )
  73. res = self.testapp.get('/api/v2/users/1/workspaces', status=403)
  74. assert isinstance(res.json, dict)
  75. assert 'code' in res.json.keys()
  76. assert 'message' in res.json.keys()
  77. assert 'details' in res.json.keys()
  78. def test_api__get_user_workspaces__err_401__unregistered_user(self):
  79. self.testapp.authorization = (
  80. 'Basic',
  81. (
  82. 'john@doe.doe',
  83. 'lapin'
  84. )
  85. )
  86. res = self.testapp.get('/api/v2/users/1/workspaces', status=401)
  87. assert isinstance(res.json, dict)
  88. assert 'code' in res.json.keys()
  89. assert 'message' in res.json.keys()
  90. assert 'details' in res.json.keys()
  91. def test_api__get_user_workspaces__err_404__user_does_not_exist(self):
  92. self.testapp.authorization = (
  93. 'Basic',
  94. (
  95. 'admin@admin.admin',
  96. 'admin@admin.admin'
  97. )
  98. )
  99. res = self.testapp.get('/api/v2/users/5/workspaces', status=404)
  100. assert isinstance(res.json, dict)
  101. assert 'code' in res.json.keys()
  102. assert 'message' in res.json.keys()
  103. assert 'details' in res.json.keys()