Alexis CLEMENT 8 years ago
parent
commit
5fdf4189a5
2 changed files with 66 additions and 20 deletions
  1. 4 5
      tracim/tracim/lib/content.py
  2. 62 15
      tracim/tracim/tests/library/test_content_api.py

+ 4 - 5
tracim/tracim/lib/content.py View File

@@ -873,11 +873,10 @@ class ContentApi(object):
873 873
         content.revision_type = ActionDescription.UNDELETION
874 874
 
875 875
     def mark_read__all(self,
876
-                  read_datetime: datetime=None,
877
-                  do_flush: bool=True, recursive: bool=True):
878
-
879
-        if not read_datetime:
880
-            read_datetime = datetime.datetime.now()
876
+                       read_datetime: datetime=None,
877
+                       do_flush: bool=True,
878
+                       recursive: bool=True
879
+                       ):
881 880
 
882 881
         itemset = self.get_last_unread(None, ContentType.Any, None)
883 882
         for item in itemset:

+ 62 - 15
tracim/tracim/tests/library/test_content_api.py View File

@@ -347,35 +347,82 @@ class TestContentApi(BaseTest, TestStandard):
347 347
         eq_(ActionDescription.COMMENT, c.revision_type)
348 348
 
349 349
 
350
-    def test_mark_as_read(self):
350
+    def test_mark_read(self):
351 351
         uapi = UserApi(None)
352 352
         groups = [GroupApi(None).get_one(Group.TIM_USER),
353 353
                   GroupApi(None).get_one(Group.TIM_MANAGER),
354 354
                   GroupApi(None).get_one(Group.TIM_ADMIN)]
355
-
356 355
         userA = uapi.create_user(email='this.is@user',
357
-                                groups=groups, save_now=True)
356
+                                 groups=groups, save_now=True)
357
+        userB = uapi.create_user(email='this.is@another.user',
358
+                                 groups=groups, save_now=True)
359
+
360
+        wapi = WorkspaceApi(userA)
361
+        workspace = wapi.create_workspace(
362
+            'test workspace',
363
+            save_now=True)
364
+
365
+        role_api = RoleApi(userA)
366
+        role_api.create_one(userB, workspace, UserRoleInWorkspace.READER, False)
367
+        contapiA = ContentApi(userA)
368
+        contapiB = ContentApi(userB)
369
+
370
+        page1 = contapiA.create(ContentType.Page, workspace, None, "this is a page", do_save=True)
371
+
372
+        for rev in page1.revisions:
373
+            eq_(userB not in rev.read_by.keys(), True)
374
+
375
+        contapiB.mark_read(page1)
376
+
377
+        for rev in page1.revisions:
378
+            eq_(userB in rev.read_by.keys(), True)
358 379
 
359
-        userB = uapi.create_user(email='this.is@nother_user',
380
+
381
+    def test_mark_read__all(self):
382
+        uapi = UserApi(None)
383
+        groups = [GroupApi(None).get_one(Group.TIM_USER),
384
+                  GroupApi(None).get_one(Group.TIM_MANAGER),
385
+                  GroupApi(None).get_one(Group.TIM_ADMIN)]
386
+        userA = uapi.create_user(email='this.is@user',
387
+                                 groups=groups, save_now=True)
388
+        userB = uapi.create_user(email='this.is@another.user',
360 389
                                  groups=groups, save_now=True)
361 390
 
362
-        workspace = WorkspaceApi(userA, userB).create_workspace('test workspace',
363
-                                                        save_now=True)
391
+        wapi = WorkspaceApi(userA)
392
+        workspace = wapi.create_workspace(
393
+            'test workspace',
394
+            save_now=True)
395
+
396
+        role_api = RoleApi(userA)
397
+        role_api.create_one(userB, workspace, UserRoleInWorkspace.READER, False)
364 398
         contapiA = ContentApi(userA)
365 399
         contapiB = ContentApi(userB)
366 400
 
367
-        page1 = contapiA.create(ContentType.page, workspace, "this is a page")
368
-        page2 = contapiA.create(ContentType.page, workspace, "this is another page")
401
+        page2 = contapiA.create(ContentType.Page, workspace, None, "this is page1", do_save=True)
402
+        page3 = contapiA.create(ContentType.Thread, workspace, None, "this is page2", do_save=True)
403
+        page4 = contapiA.create(ContentType.File, workspace, None, "this is page3", do_save=True)
404
+
405
+        for rev in page2.revisions:
406
+            eq_(userB not in rev.read_by.keys(), True)
407
+        for rev in page3.revisions:
408
+            eq_(userB not in rev.read_by.keys(), True)
409
+        for rev in page4.revisions:
410
+            eq_(userB not in rev.read_by.keys(), True)
411
+
412
+        DBSession.refresh(page2)
413
+        DBSession.refresh(page3)
414
+        DBSession.refresh(page4)
415
+
416
+        contapiB.mark_read__all()
369 417
 
370
-        eq_(page1.revisions[-1].read_by[userB], False)
371
-        eq_(page2.revisions[-1].read_by[userB], False)
418
+        for rev in page2.revisions:
419
+            eq_(userB in rev.read_by.keys(), True)
420
+        for rev in page3.revisions:
421
+            eq_(userB in rev.read_by.keys(), True)
422
+        for rev in page4.revisions:
423
+            eq_(userB in rev.read_by.keys(), True)
372 424
 
373
-        itemset = contapiB.get_last_unread(None, ContentType.Any, None)
374
-        for item in itemset:
375
-            contapiB.mark_read(item)
376 425
 
377
-        eq_(page1.revisions[-1].read_by[userB], True)
378
-        eq_(page2.revisions[-1].read_by[userB], True)
379 426
 
380 427
 
381 428