Browse Source

reenable some libContent code (test+fixture) +cleanup

Guénaël Muller 7 years ago
parent
commit
eace8cc43f
3 changed files with 364 additions and 235 deletions
  1. 148 137
      tracim/fixtures/content.py
  2. 174 70
      tracim/tests/models/test_content.py
  3. 42 28
      tracim/tests/models/test_content_revision.py

+ 148 - 137
tracim/fixtures/content.py View File

@@ -1,137 +1,148 @@
1
-# TODO : [LibContent] Reenable this when API where availables
2
-# # -*- coding: utf-8 -*-
3
-# from depot.io.utils import FileIntent
4
-#
5
-# from tracim import models
6
-# from tracim.fixtures import Fixture
7
-# from tracim.fixtures.users_and_groups import Test
8
-# from tracim.lib.content import ContentApi
9
-# from tracim.lib.userworkspace import RoleApi
10
-# from tracim.lib.workspace import WorkspaceApi
11
-# from tracim.models.data import ContentType
12
-# from tracim.models.data import UserRoleInWorkspace
13
-#
14
-#
15
-# class Content(Fixture):
16
-#     require = [Test]
17
-#
18
-#     def insert(self):
19
-#         admin = self._session.query(models.User) \
20
-#             .filter(models.User.email == 'admin@admin.admin') \
21
-#             .one()
22
-#         bob = self._session.query(models.User) \
23
-#             .filter(models.User.email == 'bob@fsf.local') \
24
-#             .one()
25
-#         admin_workspace_api = WorkspaceApi(admin)
26
-#         bob_workspace_api = WorkspaceApi(bob)
27
-#         content_api = ContentApi(admin)
28
-#         role_api = RoleApi(admin)
29
-#
30
-#         # Workspaces
31
-#         w1 = admin_workspace_api.create_workspace('w1', save_now=True)
32
-#         w2 = bob_workspace_api.create_workspace('w2', save_now=True)
33
-#         w3 = admin_workspace_api.create_workspace('w3', save_now=True)
34
-#
35
-#         # Workspaces roles
36
-#         role_api.create_one(
37
-#             user=bob,
38
-#             workspace=w1,
39
-#             role_level=UserRoleInWorkspace.CONTENT_MANAGER,
40
-#             with_notif=False,
41
-#         )
42
-#
43
-#         # Folders
44
-#         w1f1 = content_api.create(
45
-#             content_type=ContentType.Folder,
46
-#             workspace=w1,
47
-#             label='w1f1',
48
-#             do_save=True,
49
-#         )
50
-#         w1f2 = content_api.create(
51
-#             content_type=ContentType.Folder,
52
-#             workspace=w1,
53
-#             label='w1f2',
54
-#             do_save=True,
55
-#         )
56
-#
57
-#         w2f1 = content_api.create(
58
-#             content_type=ContentType.Folder,
59
-#             workspace=w2,
60
-#             label='w2f1',
61
-#             do_save=True,
62
-#         )
63
-#         w2f2 = content_api.create(
64
-#             content_type=ContentType.Folder,
65
-#             workspace=w2,
66
-#             label='w2f2',
67
-#             do_save=True,
68
-#         )
69
-#
70
-#         w3f1 = content_api.create(
71
-#             content_type=ContentType.Folder,
72
-#             workspace=w3,
73
-#             label='w3f3',
74
-#             do_save=True,
75
-#         )
76
-#
77
-#         # Pages, threads, ..
78
-#         w1f1p1 = content_api.create(
79
-#             content_type=ContentType.Page,
80
-#             workspace=w1,
81
-#             parent=w1f1,
82
-#             label='w1f1p1',
83
-#             do_save=True,
84
-#         )
85
-#         w1f1t1 = content_api.create(
86
-#             content_type=ContentType.Thread,
87
-#             workspace=w1,
88
-#             parent=w1f1,
89
-#             label='w1f1t1',
90
-#             do_save=False,
91
-#         )
92
-#         w1f1t1.description = 'w1f1t1 description'
93
-#         self._session.add(w1f1t1)
94
-#         w1f1d1_txt = content_api.create(
95
-#             content_type=ContentType.File,
96
-#             workspace=w1,
97
-#             parent=w1f1,
98
-#             label='w1f1d1',
99
-#             do_save=False,
100
-#         )
101
-#         w1f1d1_txt.file_extension = '.txt'
102
-#         w1f1d1_txt.depot_file = FileIntent(
103
-#             b'w1f1d1 content',
104
-#             'w1f1d1.txt',
105
-#             'text/plain',
106
-#         )
107
-#         self._session.add(w1f1d1_txt)
108
-#         w1f1d2_html = content_api.create(
109
-#             content_type=ContentType.File,
110
-#             workspace=w1,
111
-#             parent=w1f1,
112
-#             label='w1f1d2',
113
-#             do_save=False,
114
-#         )
115
-#         w1f1d2_html.file_extension = '.html'
116
-#         w1f1d2_html.depot_file = FileIntent(
117
-#             b'<p>w1f1d2 content</p>',
118
-#             'w1f1d2.html',
119
-#             'text/html',
120
-#         )
121
-#         self._session.add(w1f1d2_html)
122
-#         w1f1f1 = content_api.create(
123
-#             content_type=ContentType.Folder,
124
-#             workspace=w1,
125
-#             label='w1f1f1',
126
-#             parent=w1f1,
127
-#             do_save=True,
128
-#         )
129
-#
130
-#         w2f1p1 = content_api.create(
131
-#             content_type=ContentType.Page,
132
-#             workspace=w2,
133
-#             parent=w2f1,
134
-#             label='w2f1p1',
135
-#             do_save=True,
136
-#         )
137
-#         self._session.flush()
1
+# -*- coding: utf-8 -*-
2
+from depot.io.utils import FileIntent
3
+
4
+from tracim import models
5
+from tracim.fixtures import Fixture
6
+from tracim.fixtures.users_and_groups import Test
7
+from tracim.lib.content import ContentApi
8
+from tracim.lib.userworkspace import RoleApi
9
+from tracim.lib.workspace import WorkspaceApi
10
+from tracim.models.data import ContentType
11
+from tracim.models.data import UserRoleInWorkspace
12
+
13
+
14
+class Content(Fixture):
15
+    require = [Test]
16
+
17
+    def insert(self):
18
+        admin = self._session.query(models.User) \
19
+            .filter(models.User.email == 'admin@admin.admin') \
20
+            .one()
21
+        bob = self._session.query(models.User) \
22
+            .filter(models.User.email == 'bob@fsf.local') \
23
+            .one()
24
+        admin_workspace_api = WorkspaceApi(
25
+            current_user=admin,
26
+            session=self._session,
27
+        )
28
+        bob_workspace_api = WorkspaceApi(
29
+            current_user=bob,
30
+            session=self._session,
31
+        )
32
+        content_api = ContentApi(
33
+            current_user=admin,
34
+            session=self._session,
35
+        )
36
+        role_api = RoleApi(
37
+            current_user=admin,
38
+            session=self._session,
39
+        )
40
+
41
+        # Workspaces
42
+        w1 = admin_workspace_api.create_workspace('w1', save_now=True)
43
+        w2 = bob_workspace_api.create_workspace('w2', save_now=True)
44
+        w3 = admin_workspace_api.create_workspace('w3', save_now=True)
45
+
46
+        # Workspaces roles
47
+        role_api.create_one(
48
+            user=bob,
49
+            workspace=w1,
50
+            role_level=UserRoleInWorkspace.CONTENT_MANAGER,
51
+            with_notif=False,
52
+        )
53
+
54
+        # Folders
55
+        w1f1 = content_api.create(
56
+            content_type=ContentType.Folder,
57
+            workspace=w1,
58
+            label='w1f1',
59
+            do_save=True,
60
+        )
61
+        w1f2 = content_api.create(
62
+            content_type=ContentType.Folder,
63
+            workspace=w1,
64
+            label='w1f2',
65
+            do_save=True,
66
+        )
67
+
68
+        w2f1 = content_api.create(
69
+            content_type=ContentType.Folder,
70
+            workspace=w2,
71
+            label='w2f1',
72
+            do_save=True,
73
+        )
74
+        w2f2 = content_api.create(
75
+            content_type=ContentType.Folder,
76
+            workspace=w2,
77
+            label='w2f2',
78
+            do_save=True,
79
+        )
80
+
81
+        w3f1 = content_api.create(
82
+            content_type=ContentType.Folder,
83
+            workspace=w3,
84
+            label='w3f3',
85
+            do_save=True,
86
+        )
87
+
88
+        # Pages, threads, ..
89
+        w1f1p1 = content_api.create(
90
+            content_type=ContentType.Page,
91
+            workspace=w1,
92
+            parent=w1f1,
93
+            label='w1f1p1',
94
+            do_save=True,
95
+        )
96
+        w1f1t1 = content_api.create(
97
+            content_type=ContentType.Thread,
98
+            workspace=w1,
99
+            parent=w1f1,
100
+            label='w1f1t1',
101
+            do_save=False,
102
+        )
103
+        w1f1t1.description = 'w1f1t1 description'
104
+        self._session.add(w1f1t1)
105
+        w1f1d1_txt = content_api.create(
106
+            content_type=ContentType.File,
107
+            workspace=w1,
108
+            parent=w1f1,
109
+            label='w1f1d1',
110
+            do_save=False,
111
+        )
112
+        w1f1d1_txt.file_extension = '.txt'
113
+        w1f1d1_txt.depot_file = FileIntent(
114
+            b'w1f1d1 content',
115
+            'w1f1d1.txt',
116
+            'text/plain',
117
+        )
118
+        self._session.add(w1f1d1_txt)
119
+        w1f1d2_html = content_api.create(
120
+            content_type=ContentType.File,
121
+            workspace=w1,
122
+            parent=w1f1,
123
+            label='w1f1d2',
124
+            do_save=False,
125
+        )
126
+        w1f1d2_html.file_extension = '.html'
127
+        w1f1d2_html.depot_file = FileIntent(
128
+            b'<p>w1f1d2 content</p>',
129
+            'w1f1d2.html',
130
+            'text/html',
131
+        )
132
+        self._session.add(w1f1d2_html)
133
+        w1f1f1 = content_api.create(
134
+            content_type=ContentType.Folder,
135
+            workspace=w1,
136
+            label='w1f1f1',
137
+            parent=w1f1,
138
+            do_save=True,
139
+        )
140
+
141
+        w2f1p1 = content_api.create(
142
+            content_type=ContentType.Page,
143
+            workspace=w2,
144
+            parent=w2f1,
145
+            label='w2f1p1',
146
+            do_save=True,
147
+        )
148
+        self._session.flush()

+ 174 - 70
tracim/tests/models/test_content.py View File

@@ -10,6 +10,7 @@ import transaction
10 10
 
11 11
 # from tracim.lib.content import ContentApi
12 12
 from tracim.exceptions import ContentRevisionUpdateError
13
+from tracim.lib.content import ContentApi
13 14
 from tracim.models import Content
14 15
 from tracim.models.revision_protection import new_revision
15 16
 from tracim.models import User
@@ -25,55 +26,82 @@ class TestContent(StandardTest):
25 26
     @raises(ContentRevisionUpdateError)
26 27
     def test_update_without_prepare(self):
27 28
         content1 = self.test_create()
28
-        content1.description = 'FOO'  # Raise ContentRevisionUpdateError because revision can't be updated
29
-
30
-    # TODO - G.M - 28-03-2018 - [libContent] Reenable this test when libContent is available
31
-    # def test_query(self):
32
-    #     content1 = self.test_create()
33
-    #     with new_revision(content1):
34
-    #         content1.description = 'TEST_CONTENT_DESCRIPTION_1_UPDATED'
35
-    #     DBSession.flush()
36
-    #
37
-    #     content2 = self.test_create(key='2')
38
-    #     with new_revision(content2):
39
-    #         content2.description = 'TEST_CONTENT_DESCRIPTION_2_UPDATED'
40
-    #     DBSession.flush()
41
-    #
42
-    #     workspace1 = DBSession.query(Workspace).filter(Workspace.label == 'TEST_WORKSPACE_1').one()
43
-    #     workspace2 = DBSession.query(Workspace).filter(Workspace.label == 'TEST_WORKSPACE_2').one()
44
-    #
45
-    #     # To get Content in database we have to join Content and ContentRevisionRO with particular condition:
46
-    #     # Join have to be on most recent revision
47
-    #     join_sub_query = DBSession.query(ContentRevisionRO.revision_id)\
48
-    #         .filter(ContentRevisionRO.content_id == Content.id)\
49
-    #         .order_by(ContentRevisionRO.revision_id.desc())\
50
-    #         .limit(1)\
51
-    #         .correlate(Content)
52
-    #
53
-    #     base_query = DBSession.query(Content)\
54
-    #         .join(ContentRevisionRO, and_(Content.id == ContentRevisionRO.content_id,
55
-    #                                       ContentRevisionRO.revision_id == join_sub_query))
56
-    #
57
-    #     pattern = 'TEST_CONTENT_DESCRIPTION_%_UPDATED'
58
-    #     eq_(2, base_query.filter(Content.description.like(pattern)).count())
59
-    #
60
-    #     eq_(1, base_query.filter(Content.workspace == workspace1).count())
61
-    #     eq_(1, base_query.filter(Content.workspace == workspace2).count())
62
-    #
63
-    #     content1_from_query = base_query.filter(Content.workspace == workspace1).one()
64
-    #     eq_(content1.id, content1_from_query.id)
65
-    #     eq_('TEST_CONTENT_DESCRIPTION_1_UPDATED', content1_from_query.description)
66
-    #
67
-    #     user_admin = DBSession.query(User).filter(User.email == 'admin@admin.admin').one()
68
-    #
69
-    #     api = ContentApi(None)
70
-    #
71
-    #     content1_from_api = api.get_one(content1.id, ContentType.Page, workspace1)
29
+        content1.description = 'FOO'
30
+        # Raise ContentRevisionUpdateError because revision can't be updated
31
+
32
+    def test_query(self):
33
+        content1 = self.test_create()
34
+        with new_revision(
35
+                session=self.session,
36
+                tm=transaction.manager,
37
+                content=content1,
38
+        ):
39
+            content1.description = 'TEST_CONTENT_DESCRIPTION_1_UPDATED'
40
+        self.session.flush()
41
+
42
+        content2 = self.test_create(key='2')
43
+        with new_revision(
44
+            session=self.session,
45
+            tm=transaction.manager,
46
+            content=content2,
47
+        ):
48
+            content2.description = 'TEST_CONTENT_DESCRIPTION_2_UPDATED'
49
+        self.session.flush()
50
+
51
+        workspace1 = self.session.query(Workspace)\
52
+            .filter(Workspace.label == 'TEST_WORKSPACE_1').one()
53
+        workspace2 = self.session.query(Workspace)\
54
+            .filter(Workspace.label == 'TEST_WORKSPACE_2').one()
55
+
56
+        # To get Content in database
57
+        # we have to join Content and ContentRevisionRO
58
+        # with particular condition:
59
+        # Join have to be on most recent revision
60
+        join_sub_query = self.session.query(ContentRevisionRO.revision_id)\
61
+            .filter(ContentRevisionRO.content_id == Content.id)\
62
+            .order_by(ContentRevisionRO.revision_id.desc())\
63
+            .limit(1)\
64
+            .correlate(Content)
65
+
66
+        base_query = self.session.query(Content).join(
67
+            ContentRevisionRO,
68
+            and_(
69
+                Content.id == ContentRevisionRO.content_id,
70
+                ContentRevisionRO.revision_id == join_sub_query
71
+            )
72
+        )
73
+
74
+        pattern = 'TEST_CONTENT_DESCRIPTION_%_UPDATED'
75
+        eq_(2, base_query.filter(Content.description.like(pattern)).count())
76
+
77
+        eq_(1, base_query.filter(Content.workspace == workspace1).count())
78
+        eq_(1, base_query.filter(Content.workspace == workspace2).count())
79
+
80
+        content1_from_query = base_query\
81
+            .filter(Content.workspace == workspace1).one()
82
+        eq_(content1.id, content1_from_query.id)
83
+        eq_(
84
+            'TEST_CONTENT_DESCRIPTION_1_UPDATED',
85
+            content1_from_query.description
86
+        )
87
+
88
+        user_admin = self.session.query(User)\
89
+            .filter(User.email == 'admin@admin.admin').one()
90
+
91
+        api = ContentApi(current_user=None, session=self.session)
92
+
93
+        content1_from_api = api.get_one(
94
+            content1.id,
95
+            ContentType.Page,
96
+            workspace1
97
+        )
72 98
 
73 99
     def test_update(self):
74 100
         created_content = self.test_create()
75
-        content = self.session.query(Content).filter(Content.id == created_content.id).one()
76
-        eq_(1, self.session.query(ContentRevisionRO).filter(ContentRevisionRO.label == 'TEST_CONTENT_1').count())
101
+        content = self.session.query(Content)\
102
+            .filter(Content.id == created_content.id).one()
103
+        eq_(1, self.session.query(ContentRevisionRO)
104
+            .filter(ContentRevisionRO.label == 'TEST_CONTENT_1').count())
77 105
 
78 106
         with new_revision(
79 107
                 session=self.session,
@@ -84,8 +112,18 @@ class TestContent(StandardTest):
84 112
             content.description = 'TEST_CONTENT_DESCRIPTION_1_UPDATED'
85 113
         self.session.flush()
86 114
 
87
-        eq_(2, self.session.query(ContentRevisionRO).filter(ContentRevisionRO.label == 'TEST_CONTENT_1').count())
88
-        eq_(1, self.session.query(Content).filter(Content.id == created_content.id).count())
115
+        eq_(
116
+            2,
117
+            self.session.query(ContentRevisionRO).filter(
118
+                ContentRevisionRO.label == 'TEST_CONTENT_1'
119
+            ).count()
120
+        )
121
+        eq_(
122
+            1,
123
+            self.session.query(Content).filter(
124
+                Content.id == created_content.id
125
+            ).count()
126
+        )
89 127
 
90 128
         with new_revision(
91 129
                 session=self.session,
@@ -97,15 +135,28 @@ class TestContent(StandardTest):
97 135
             content.label = 'TEST_CONTENT_1_UPDATED_2'
98 136
         self.session.flush()
99 137
 
100
-        eq_(1, self.session.query(ContentRevisionRO).filter(ContentRevisionRO.label == 'TEST_CONTENT_1_UPDATED_2').count())
101
-        eq_(1, self.session.query(Content).filter(Content.id == created_content.id).count())
138
+        eq_(
139
+            1,
140
+            self.session.query(ContentRevisionRO).filter(
141
+                ContentRevisionRO.label == 'TEST_CONTENT_1_UPDATED_2'
142
+            ).count()
143
+        )
144
+        eq_(
145
+            1,
146
+            self.session.query(Content).filter(
147
+                Content.id == created_content.id
148
+            ).count()
149
+        )
102 150
 
103
-        revision_1 = self.session.query(ContentRevisionRO)\
104
-            .filter(ContentRevisionRO.description == 'TEST_CONTENT_DESCRIPTION_1').one()
105
-        revision_2 = self.session.query(ContentRevisionRO)\
106
-            .filter(ContentRevisionRO.description == 'TEST_CONTENT_DESCRIPTION_1_UPDATED').one()
107
-        revision_3 = self.session.query(ContentRevisionRO)\
108
-            .filter(ContentRevisionRO.description == 'TEST_CONTENT_DESCRIPTION_1_UPDATED_2').one()
151
+        revision_1 = self.session.query(ContentRevisionRO).filter(
152
+            ContentRevisionRO.description == 'TEST_CONTENT_DESCRIPTION_1'
153
+        ).one()
154
+        revision_2 = self.session.query(ContentRevisionRO).filter(
155
+            ContentRevisionRO.description == 'TEST_CONTENT_DESCRIPTION_1_UPDATED'  # nopep8
156
+        ).one()
157
+        revision_3 = self.session.query(ContentRevisionRO).filter(
158
+            ContentRevisionRO.description == 'TEST_CONTENT_DESCRIPTION_1_UPDATED_2'  # nopep8
159
+        ).one()
109 160
 
110 161
         # Updated dates must be different
111 162
         ok_(revision_1.updated < revision_2.updated < revision_3.updated)
@@ -113,14 +164,31 @@ class TestContent(StandardTest):
113 164
         ok_(revision_1.created == revision_2.created == revision_3.created)
114 165
 
115 166
     def test_creates(self):
116
-        eq_(0, self.session.query(ContentRevisionRO).filter(ContentRevisionRO.label == 'TEST_CONTENT_1').count())
117
-        eq_(0, self.session.query(Workspace).filter(Workspace.label == 'TEST_WORKSPACE_1').count())
167
+        eq_(
168
+            0,
169
+            self.session.query(ContentRevisionRO).filter(
170
+                ContentRevisionRO.label == 'TEST_CONTENT_1'
171
+            ).count()
172
+        )
173
+        eq_(
174
+            0,
175
+            self.session.query(Workspace).filter(
176
+                Workspace.label == 'TEST_WORKSPACE_1'
177
+            ).count()
178
+        )
118 179
 
119
-        user_admin = self.session.query(User).filter(User.email == 'admin@admin.admin').one()
180
+        user_admin = self.session.query(User).filter(
181
+            User.email == 'admin@admin.admin'
182
+        ).one()
120 183
         workspace = Workspace(label="TEST_WORKSPACE_1")
121 184
         self.session.add(workspace)
122 185
         self.session.flush()
123
-        eq_(1, self.session.query(Workspace).filter(Workspace.label == 'TEST_WORKSPACE_1').count())
186
+        eq_(
187
+            1,
188
+            self.session.query(Workspace).filter(
189
+                Workspace.label == 'TEST_WORKSPACE_1'
190
+            ).count()
191
+        )
124 192
 
125 193
         first_content = self._create_content(
126 194
             owner=user_admin,
@@ -133,9 +201,16 @@ class TestContent(StandardTest):
133 201
             is_archived=False,
134 202
         )
135 203
 
136
-        eq_(1, self.session.query(ContentRevisionRO).filter(ContentRevisionRO.label == 'TEST_CONTENT_1').count())
204
+        eq_(
205
+            1,
206
+            self.session.query(ContentRevisionRO).filter(
207
+                ContentRevisionRO.label == 'TEST_CONTENT_1'
208
+            ).count()
209
+        )
137 210
 
138
-        content = self.session.query(Content).filter(Content.id == first_content.id).one()
211
+        content = self.session.query(Content).filter(
212
+            Content.id == first_content.id
213
+        ).one()
139 214
         eq_('TEST_CONTENT_1', content.label)
140 215
         eq_('TEST_CONTENT_DESCRIPTION_1', content.description)
141 216
 
@@ -149,21 +224,43 @@ class TestContent(StandardTest):
149 224
             revision_type=ActionDescription.CREATION
150 225
         )
151 226
 
152
-        eq_(1, self.session.query(ContentRevisionRO).filter(ContentRevisionRO.label == 'TEST_CONTENT_2').count())
227
+        eq_(
228
+            1,
229
+            self.session.query(ContentRevisionRO).filter(
230
+                ContentRevisionRO.label == 'TEST_CONTENT_2'
231
+            ).count()
232
+        )
153 233
 
154
-        content = self.session.query(Content).filter(Content.id == second_content.id).one()
234
+        content = self.session.query(Content).filter(
235
+            Content.id == second_content.id
236
+        ).one()
155 237
         eq_('TEST_CONTENT_2', content.label)
156 238
         eq_('TEST_CONTENT_DESCRIPTION_2', content.description)
157 239
 
158 240
     def test_create(self, key='1'):
159
-        eq_(0, self.session.query(ContentRevisionRO).filter(ContentRevisionRO.label == 'TEST_CONTENT_%s' % key).count())
160
-        eq_(0, self.session.query(Workspace).filter(Workspace.label == 'TEST_WORKSPACE_%s' % key).count())
241
+        eq_(
242
+            0,
243
+            self.session.query(ContentRevisionRO).filter(
244
+                ContentRevisionRO.label == 'TEST_CONTENT_%s' % key).count()
245
+        )
246
+        eq_(
247
+            0,
248
+            self.session.query(Workspace).filter(
249
+                Workspace.label == 'TEST_WORKSPACE_%s' % key).count()
250
+        )
161 251
 
162
-        user_admin = self.session.query(User).filter(User.email == 'admin@admin.admin').one()
252
+        user_admin = self.session.query(User).filter(
253
+            User.email == 'admin@admin.admin'
254
+        ).one()
163 255
         workspace = Workspace(label="TEST_WORKSPACE_%s" % key)
164 256
         self.session.add(workspace)
165 257
         self.session.flush()
166
-        eq_(1, self.session.query(Workspace).filter(Workspace.label == 'TEST_WORKSPACE_%s' % key).count())
258
+        eq_(
259
+            1,
260
+            self.session.query(Workspace).filter(
261
+                Workspace.label == 'TEST_WORKSPACE_%s' % key
262
+            ).count()
263
+        )
167 264
 
168 265
         created_content = self._create_content(
169 266
             owner=user_admin,
@@ -174,9 +271,16 @@ class TestContent(StandardTest):
174 271
             revision_type=ActionDescription.CREATION
175 272
         )
176 273
 
177
-        eq_(1, self.session.query(ContentRevisionRO).filter(ContentRevisionRO.label == 'TEST_CONTENT_%s' % key).count())
274
+        eq_(
275
+            1,
276
+            self.session.query(ContentRevisionRO).filter(
277
+                ContentRevisionRO.label == 'TEST_CONTENT_%s' % key
278
+            ).count()
279
+        )
178 280
 
179
-        content = self.session.query(Content).filter(Content.id == created_content.id).one()
281
+        content = self.session.query(Content).filter(
282
+            Content.id == created_content.id
283
+        ).one()
180 284
         eq_('TEST_CONTENT_%s' % key, content.label)
181 285
         eq_('TEST_CONTENT_DESCRIPTION_%s' % key, content.description)
182 286
 

+ 42 - 28
tracim/tests/models/test_content_revision.py View File

@@ -2,14 +2,15 @@
2 2
 from collections import OrderedDict
3 3
 
4 4
 from sqlalchemy import inspect
5
+from nose.tools import eq_
5 6
 
6 7
 from tracim.models import ContentRevisionRO
7 8
 from tracim.models import User
8 9
 from tracim.models.data import ContentType
9
-from tracim.tests import BaseTest
10
+from tracim.tests import DefaultTest
10 11
 
11 12
 
12
-class TestContentRevision(BaseTest):
13
+class TestContentRevision(DefaultTest):
13 14
 
14 15
     def _new_from(self, revision):
15 16
         excluded_columns = (
@@ -36,29 +37,42 @@ class TestContentRevision(BaseTest):
36 37
             dict_repr.pop(key_to_remove, None)
37 38
         return dict_repr
38 39
 
39
-    # TODO - G.M - 28-03-2018 - [libContent] Reenable this test
40
-    # def test_new_revision(self):
41
-    #     admin = self._session.query(User).filter(User.email == 'admin@admin.admin').one()
42
-    #     workspace = self._create_workspace_and_test(name='workspace_1', user=admin)
43
-    #     folder = self._create_content_and_test(name='folder_1', workspace=workspace, type=ContentType.Folder)
44
-    #     page = self._create_content_and_test(
45
-    #         workspace=workspace,
46
-    #         parent=folder,
47
-    #         name='file_1',
48
-    #         description='content of file_1',
49
-    #         type=ContentType.Page,
50
-    #         owner=admin
51
-    #     )
52
-    #
53
-    #     self._session.flush()
54
-    #
55
-    #     # Model create a new instance with list of column
56
-    #     new_revision_by_model = ContentRevisionRO.new_from(page.revision)
57
-    #     # Test create a new instance from dynamic listing of model columns mapping
58
-    #     new_revision_by_test = self._new_from(page.revision)
59
-    #
60
-    #     new_revision_by_model_dict = self._get_dict_representation(new_revision_by_model)
61
-    #     new_revision_by_test_dict = self._get_dict_representation(new_revision_by_test)
62
-    #
63
-    #     # They must be identical
64
-    #     eq_(new_revision_by_model_dict, new_revision_by_test_dict)
40
+    def test_new_revision(self):
41
+        admin = self.session.query(User).filter(
42
+            User.email == 'admin@admin.admin'
43
+        ).one()
44
+        workspace = self._create_workspace_and_test(
45
+            name='workspace_1',
46
+            user=admin
47
+        )
48
+        folder = self._create_content_and_test(
49
+            name='folder_1',
50
+            workspace=workspace,
51
+            type=ContentType.Folder
52
+        )
53
+        page = self._create_content_and_test(
54
+            workspace=workspace,
55
+            parent=folder,
56
+            name='file_1',
57
+            description='content of file_1',
58
+            type=ContentType.Page,
59
+            owner=admin
60
+        )
61
+
62
+        self.session.flush()
63
+
64
+        # Model create a new instance with list of column
65
+        new_revision_by_model = ContentRevisionRO.new_from(page.revision)
66
+        # Test create a new instance from dynamic listing of model
67
+        # columns mapping
68
+        new_revision_by_test = self._new_from(page.revision)
69
+
70
+        new_revision_by_model_dict = self._get_dict_representation(
71
+            new_revision_by_model
72
+        )
73
+        new_revision_by_test_dict = self._get_dict_representation(
74
+            new_revision_by_test
75
+        )
76
+
77
+        # They must be identical
78
+        eq_(new_revision_by_model_dict, new_revision_by_test_dict)