| @@ 2563-2678 (lines=116) @@ | ||
| 2560 | eq_(b'<html>hello world</html>', updated.depot_file.file.read()) |
|
| 2561 | eq_(ActionDescription.REVISION, updated.revision_type) |
|
| 2562 | ||
| 2563 | def test_update_file_data__err__content_status_closed(self): |
|
| 2564 | uapi = UserApi( |
|
| 2565 | session=self.session, |
|
| 2566 | config=self.app_config, |
|
| 2567 | current_user=None, |
|
| 2568 | ) |
|
| 2569 | group_api = GroupApi( |
|
| 2570 | current_user=None, |
|
| 2571 | session=self.session, |
|
| 2572 | config=self.app_config, |
|
| 2573 | ) |
|
| 2574 | groups = [group_api.get_one(Group.TIM_USER), |
|
| 2575 | group_api.get_one(Group.TIM_MANAGER), |
|
| 2576 | group_api.get_one(Group.TIM_ADMIN)] |
|
| 2577 | ||
| 2578 | user1 = uapi.create_minimal_user( |
|
| 2579 | email='this.is@user', |
|
| 2580 | groups=groups, |
|
| 2581 | save_now=True |
|
| 2582 | ) |
|
| 2583 | ||
| 2584 | workspace_api = WorkspaceApi( |
|
| 2585 | current_user=user1, |
|
| 2586 | session=self.session, |
|
| 2587 | config=self.app_config, |
|
| 2588 | ) |
|
| 2589 | workspace = workspace_api.create_workspace( |
|
| 2590 | 'test workspace', |
|
| 2591 | save_now=True |
|
| 2592 | ) |
|
| 2593 | wid = workspace.workspace_id |
|
| 2594 | ||
| 2595 | user2 = uapi.create_minimal_user('[email protected]') |
|
| 2596 | uapi.save(user2) |
|
| 2597 | ||
| 2598 | RoleApi( |
|
| 2599 | current_user=user1, |
|
| 2600 | session=self.session, |
|
| 2601 | config=self.app_config, |
|
| 2602 | ).create_one( |
|
| 2603 | user2, |
|
| 2604 | workspace, |
|
| 2605 | UserRoleInWorkspace.CONTENT_MANAGER, |
|
| 2606 | with_notif=True, |
|
| 2607 | flush=True |
|
| 2608 | ) |
|
| 2609 | ||
| 2610 | # Test starts here |
|
| 2611 | api = ContentApi( |
|
| 2612 | current_user=user1, |
|
| 2613 | session=self.session, |
|
| 2614 | config=self.app_config, |
|
| 2615 | ) |
|
| 2616 | p = api.create( |
|
| 2617 | content_type_slug=content_type_list.File.slug, |
|
| 2618 | workspace=workspace, |
|
| 2619 | parent=None, |
|
| 2620 | label='this_is_a_page', |
|
| 2621 | do_save=False |
|
| 2622 | ) |
|
| 2623 | p.status = 'closed-validated' |
|
| 2624 | api.save(p) |
|
| 2625 | ||
| 2626 | u1id = user1.user_id |
|
| 2627 | u2id = user2.user_id |
|
| 2628 | pcid = p.content_id |
|
| 2629 | poid = p.owner_id |
|
| 2630 | ||
| 2631 | api.save(p) |
|
| 2632 | transaction.commit() |
|
| 2633 | ||
| 2634 | # Refresh instances after commit |
|
| 2635 | user1 = uapi.get_one(u1id) |
|
| 2636 | workspace_api2 = WorkspaceApi( |
|
| 2637 | current_user=user1, |
|
| 2638 | session=self.session, |
|
| 2639 | config=self.app_config, |
|
| 2640 | ) |
|
| 2641 | workspace = workspace_api2.get_one(wid) |
|
| 2642 | api = ContentApi( |
|
| 2643 | current_user=user1, |
|
| 2644 | session=self.session, |
|
| 2645 | config=self.app_config, |
|
| 2646 | ) |
|
| 2647 | ||
| 2648 | content = api.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
| 2649 | eq_(u1id, content.owner_id) |
|
| 2650 | eq_(poid, content.owner_id) |
|
| 2651 | ||
| 2652 | u2 = UserApi( |
|
| 2653 | current_user=None, |
|
| 2654 | session=self.session, |
|
| 2655 | config=self.app_config, |
|
| 2656 | ).get_one(u2id) |
|
| 2657 | api2 = ContentApi( |
|
| 2658 | current_user=u2, |
|
| 2659 | session=self.session, |
|
| 2660 | config=self.app_config, |
|
| 2661 | ) |
|
| 2662 | content2 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
| 2663 | content2_nb_rev = len(content2.revisions) |
|
| 2664 | with pytest.raises(ContentInNotEditableState): |
|
| 2665 | with new_revision( |
|
| 2666 | session=self.session, |
|
| 2667 | tm=transaction.manager, |
|
| 2668 | content=content2, |
|
| 2669 | ): |
|
| 2670 | api2.update_file_data( |
|
| 2671 | content2, |
|
| 2672 | 'index.html', |
|
| 2673 | 'text/html', |
|
| 2674 | b'<html>hello world</html>' |
|
| 2675 | ) |
|
| 2676 | content3 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
| 2677 | assert content3.label == 'this_is_a_page' |
|
| 2678 | assert content2_nb_rev == len(content3.revisions) |
|
| 2679 | ||
| 2680 | def test_update_file_data__err__content_archived(self): |
|
| 2681 | uapi = UserApi( |
|
| @@ 1989-2103 (lines=115) @@ | ||
| 1986 | eq_('new content', updated.description) |
|
| 1987 | eq_(ActionDescription.EDITION, updated.revision_type) |
|
| 1988 | ||
| 1989 | def test_unit__update__err__status_closed(self): |
|
| 1990 | uapi = UserApi( |
|
| 1991 | session=self.session, |
|
| 1992 | config=self.app_config, |
|
| 1993 | current_user=None, |
|
| 1994 | ) |
|
| 1995 | group_api = GroupApi( |
|
| 1996 | current_user=None, |
|
| 1997 | session=self.session, |
|
| 1998 | config=self.app_config, |
|
| 1999 | ) |
|
| 2000 | groups = [group_api.get_one(Group.TIM_USER), |
|
| 2001 | group_api.get_one(Group.TIM_MANAGER), |
|
| 2002 | group_api.get_one(Group.TIM_ADMIN)] |
|
| 2003 | ||
| 2004 | user1 = uapi.create_minimal_user( |
|
| 2005 | email='this.is@user', |
|
| 2006 | groups=groups, |
|
| 2007 | save_now=True |
|
| 2008 | ) |
|
| 2009 | ||
| 2010 | workspace_api = WorkspaceApi( |
|
| 2011 | current_user=user1, |
|
| 2012 | session=self.session, |
|
| 2013 | config=self.app_config, |
|
| 2014 | ) |
|
| 2015 | workspace = workspace_api.create_workspace( |
|
| 2016 | 'test workspace', |
|
| 2017 | save_now=True |
|
| 2018 | ) |
|
| 2019 | ||
| 2020 | wid = workspace.workspace_id |
|
| 2021 | ||
| 2022 | user2 = uapi.create_minimal_user('[email protected]') |
|
| 2023 | uapi.save(user2) |
|
| 2024 | ||
| 2025 | RoleApi( |
|
| 2026 | current_user=user1, |
|
| 2027 | session=self.session, |
|
| 2028 | config=self.app_config, |
|
| 2029 | ).create_one( |
|
| 2030 | user2, |
|
| 2031 | workspace, |
|
| 2032 | UserRoleInWorkspace.CONTENT_MANAGER, |
|
| 2033 | with_notif=False, |
|
| 2034 | flush=True |
|
| 2035 | ) |
|
| 2036 | ||
| 2037 | # Test starts here |
|
| 2038 | ||
| 2039 | api = ContentApi( |
|
| 2040 | current_user=user1, |
|
| 2041 | session=self.session, |
|
| 2042 | config=self.app_config, |
|
| 2043 | ) |
|
| 2044 | ||
| 2045 | p = api.create( |
|
| 2046 | content_type_slug=content_type_list.Page.slug, |
|
| 2047 | workspace=workspace, |
|
| 2048 | parent=None, |
|
| 2049 | label='this_is_a_page', |
|
| 2050 | do_save=False |
|
| 2051 | ) |
|
| 2052 | p.status = 'closed-validated' |
|
| 2053 | api.save(p) |
|
| 2054 | u1id = user1.user_id |
|
| 2055 | u2id = user2.user_id |
|
| 2056 | pcid = p.content_id |
|
| 2057 | poid = p.owner_id |
|
| 2058 | ||
| 2059 | transaction.commit() |
|
| 2060 | ||
| 2061 | # Refresh instances after commit |
|
| 2062 | user1 = uapi.get_one(u1id) |
|
| 2063 | workspace = WorkspaceApi( |
|
| 2064 | current_user=user1, |
|
| 2065 | session=self.session, |
|
| 2066 | config=self.app_config, |
|
| 2067 | ).get_one(wid) |
|
| 2068 | api = ContentApi( |
|
| 2069 | current_user=user1, |
|
| 2070 | session=self.session, |
|
| 2071 | config=self.app_config, |
|
| 2072 | ) |
|
| 2073 | ||
| 2074 | content = api.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
| 2075 | eq_(u1id, content.owner_id) |
|
| 2076 | eq_(poid, content.owner_id) |
|
| 2077 | ||
| 2078 | u2 = UserApi( |
|
| 2079 | session=self.session, |
|
| 2080 | config=self.app_config, |
|
| 2081 | current_user=None, |
|
| 2082 | ).get_one(u2id) |
|
| 2083 | api2 = ContentApi( |
|
| 2084 | current_user=u2, |
|
| 2085 | session=self.session, |
|
| 2086 | config=self.app_config, |
|
| 2087 | ) |
|
| 2088 | content2 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
| 2089 | content2_nb_rev = len(content2.revisions) |
|
| 2090 | with pytest.raises(ContentInNotEditableState): |
|
| 2091 | with new_revision( |
|
| 2092 | session=self.session, |
|
| 2093 | tm=transaction.manager, |
|
| 2094 | content=content2, |
|
| 2095 | ): |
|
| 2096 | api2.update_content( |
|
| 2097 | content2, |
|
| 2098 | 'this is an updated page', |
|
| 2099 | 'new content' |
|
| 2100 | ) |
|
| 2101 | content3 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
| 2102 | assert content3.label == 'this_is_a_page' |
|
| 2103 | assert content2_nb_rev == len(content3.revisions) |
|
| 2104 | ||
| 2105 | def test_unit__update__err__label_already_used(self): |
|
| 2106 | uapi = UserApi( |
|