test_user.py 4.7KB

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