| @@ 1629-1774 (lines=146) @@ | ||
| 1626 | eq_(ActionDescription.UNARCHIVING, updated2.revision_type) | |
| 1627 | eq_(u1id, updated2.owner_id) | |
| 1628 | ||
| 1629 | def test_delete_undelete(self): | |
| 1630 | uapi = UserApi( | |
| 1631 | session=self.session, | |
| 1632 | config=self.app_config, | |
| 1633 | current_user=None, | |
| 1634 | ) | |
| 1635 | group_api = GroupApi( | |
| 1636 | current_user=None, | |
| 1637 | session=self.session | |
| 1638 | ) | |
| 1639 | groups = [group_api.get_one(Group.TIM_USER), | |
| 1640 | group_api.get_one(Group.TIM_MANAGER), | |
| 1641 | group_api.get_one(Group.TIM_ADMIN)] | |
| 1642 | ||
| 1643 | user1 = uapi.create_user( | |
| 1644 | email='this.is@user', | |
| 1645 | groups=groups, | |
| 1646 | save_now=True | |
| 1647 | ) | |
| 1648 | u1id = user1.user_id | |
| 1649 | ||
| 1650 | workspace_api = WorkspaceApi(current_user=user1, session=self.session) | |
| 1651 | workspace = workspace_api.create_workspace( | |
| 1652 | 'test workspace', | |
| 1653 | save_now=True | |
| 1654 | ) | |
| 1655 | wid = workspace.workspace_id | |
| 1656 | ||
| 1657 | user2 = uapi.create_user() | |
| 1658 | user2.email = '[email protected]' | |
| 1659 | uapi.save(user2) | |
| 1660 | ||
| 1661 | RoleApi( | |
| 1662 | current_user=user1, | |
| 1663 | session=self.session | |
| 1664 | ).create_one( | |
| 1665 | user2, | |
| 1666 | workspace, | |
| 1667 | UserRoleInWorkspace.CONTENT_MANAGER, | |
| 1668 | with_notif=True, | |
| 1669 | flush=True | |
| 1670 | ) | |
| 1671 | ||
| 1672 | # show archived is used at the top end of the test | |
| 1673 | api = ContentApi( | |
| 1674 | current_user=user1, | |
| 1675 | session=self.session, | |
| 1676 | config=self.app_config, | |
| 1677 | show_deleted=True, | |
| 1678 | ) | |
| 1679 | p = api.create(ContentType.File, workspace, None, | |
| 1680 | 'this_is_a_page', True) | |
| 1681 | ||
| 1682 | u1id = user1.user_id | |
| 1683 | u2id = user2.user_id | |
| 1684 | pcid = p.content_id | |
| 1685 | poid = p.owner_id | |
| 1686 | ||
| 1687 | transaction.commit() | |
| 1688 | ||
| 1689 | #### | |
| 1690 | user1 = UserApi( | |
| 1691 | current_user=None, | |
| 1692 | session=self.session, | |
| 1693 | config=self.app_config, | |
| 1694 | ).get_one(u1id) | |
| 1695 | workspace = WorkspaceApi( | |
| 1696 | current_user=user1, | |
| 1697 | session=self.session, | |
| 1698 | ).get_one(wid) | |
| 1699 | ||
| 1700 | content = api.get_one(pcid, ContentType.Any, workspace) | |
| 1701 | eq_(u1id, content.owner_id) | |
| 1702 | eq_(poid, content.owner_id) | |
| 1703 | ||
| 1704 | u2 = UserApi( | |
| 1705 | current_user=None, | |
| 1706 | session=self.session, | |
| 1707 | config=self.app_config, | |
| 1708 | ).get_one(u2id) | |
| 1709 | api2 = ContentApi( | |
| 1710 | current_user=u2, | |
| 1711 | session=self.session, | |
| 1712 | config=self.app_config, | |
| 1713 | show_deleted=True, | |
| 1714 | ) | |
| 1715 | content2 = api2.get_one(pcid, ContentType.Any, workspace) | |
| 1716 | with new_revision( | |
| 1717 | session=self.session, | |
| 1718 | tm=transaction.manager, | |
| 1719 | content=content2, | |
| 1720 | ): | |
| 1721 | api2.delete(content2) | |
| 1722 | api2.save(content2) | |
| 1723 | transaction.commit() | |
| 1724 | ||
| 1725 | #### | |
| 1726 | ||
| 1727 | user1 = UserApi( | |
| 1728 | current_user=None, | |
| 1729 | session=self.session, | |
| 1730 | config=self.app_config, | |
| 1731 | ).get_one(u1id) | |
| 1732 | workspace = WorkspaceApi( | |
| 1733 | current_user=user1, | |
| 1734 | session=self.session, | |
| 1735 | ).get_one(wid) | |
| 1736 | # show archived is used at the top end of the test | |
| 1737 | api = ContentApi( | |
| 1738 | current_user=user1, | |
| 1739 | session=self.session, | |
| 1740 | config=self.app_config, | |
| 1741 | show_deleted=True, | |
| 1742 | ) | |
| 1743 | u2 = UserApi( | |
| 1744 | current_user=None, | |
| 1745 | session=self.session, | |
| 1746 | config=self.app_config, | |
| 1747 | ).get_one(u2id) | |
| 1748 | api2 = ContentApi( | |
| 1749 | current_user=u2, | |
| 1750 | session=self.session, | |
| 1751 | config=self.app_config, | |
| 1752 | show_deleted=True | |
| 1753 | ) | |
| 1754 | ||
| 1755 | updated = api2.get_one(pcid, ContentType.Any, workspace) | |
| 1756 | eq_(u2id, updated.owner_id, | |
| 1757 |             'the owner id should be {} (found {})'.format(u2id, | |
| 1758 | updated.owner_id)) | |
| 1759 | eq_(True, updated.is_deleted) | |
| 1760 | eq_(ActionDescription.DELETION, updated.revision_type) | |
| 1761 | ||
| 1762 | #### | |
| 1763 | ||
| 1764 | updated2 = api.get_one(pcid, ContentType.Any, workspace) | |
| 1765 | with new_revision( | |
| 1766 | tm=transaction.manager, | |
| 1767 | session=self.session, | |
| 1768 | content=updated2, | |
| 1769 | ): | |
| 1770 | api.undelete(updated2) | |
| 1771 | api.save(updated2) | |
| 1772 | eq_(False, updated2.is_deleted) | |
| 1773 | eq_(ActionDescription.UNDELETION, updated2.revision_type) | |
| 1774 | eq_(u1id, updated2.owner_id) | |
| 1775 | ||
| 1776 | def test_search_in_label(self): | |
| 1777 | # HACK - D.A. - 2015-03-09 | |
| @@ 1483-1627 (lines=145) @@ | ||
| 1480 | api2.save(content2) | |
| 1481 | transaction.commit() | |
| 1482 | ||
| 1483 | def test_archive_unarchive(self): | |
| 1484 | uapi = UserApi( | |
| 1485 | session=self.session, | |
| 1486 | config=self.app_config, | |
| 1487 | current_user=None, | |
| 1488 | ) | |
| 1489 | group_api = GroupApi(current_user=None, session=self.session) | |
| 1490 | groups = [group_api.get_one(Group.TIM_USER), | |
| 1491 | group_api.get_one(Group.TIM_MANAGER), | |
| 1492 | group_api.get_one(Group.TIM_ADMIN)] | |
| 1493 | ||
| 1494 | user1 = uapi.create_user( | |
| 1495 | email='this.is@user', | |
| 1496 | groups=groups, | |
| 1497 | save_now=True | |
| 1498 | ) | |
| 1499 | u1id = user1.user_id | |
| 1500 | ||
| 1501 | workspace_api = WorkspaceApi(current_user=user1, session=self.session) | |
| 1502 | workspace = workspace_api.create_workspace( | |
| 1503 | 'test workspace', | |
| 1504 | save_now=True | |
| 1505 | ) | |
| 1506 | wid = workspace.workspace_id | |
| 1507 | ||
| 1508 | user2 = uapi.create_user() | |
| 1509 | user2.email = '[email protected]' | |
| 1510 | uapi.save(user2) | |
| 1511 | ||
| 1512 | RoleApi( | |
| 1513 | current_user=user1, | |
| 1514 | session=self.session | |
| 1515 | ).create_one( | |
| 1516 | user2, | |
| 1517 | workspace, | |
| 1518 | UserRoleInWorkspace.CONTENT_MANAGER, | |
| 1519 | with_notif=True, | |
| 1520 | flush=True | |
| 1521 | ) | |
| 1522 | ||
| 1523 | # show archived is used at the top end of the test | |
| 1524 | api = ContentApi( | |
| 1525 | current_user=user1, | |
| 1526 | session=self.session, | |
| 1527 | show_archived=True, | |
| 1528 | config=self.app_config, | |
| 1529 | ) | |
| 1530 | p = api.create(ContentType.File, workspace, None, | |
| 1531 | 'this_is_a_page', True) | |
| 1532 | ||
| 1533 | u1id = user1.user_id | |
| 1534 | u2id = user2.user_id | |
| 1535 | pcid = p.content_id | |
| 1536 | poid = p.owner_id | |
| 1537 | ||
| 1538 | transaction.commit() | |
| 1539 | ||
| 1540 | #### | |
| 1541 | ||
| 1542 | # refresh after commit | |
| 1543 | user1 = UserApi( | |
| 1544 | current_user=None, | |
| 1545 | config=self.app_config, | |
| 1546 | session=self.session | |
| 1547 | ).get_one(u1id) | |
| 1548 | workspace = WorkspaceApi( | |
| 1549 | current_user=user1, | |
| 1550 | session=self.session | |
| 1551 | ).get_one(wid) | |
| 1552 | ||
| 1553 | content = api.get_one(pcid, ContentType.Any, workspace) | |
| 1554 | eq_(u1id, content.owner_id) | |
| 1555 | eq_(poid, content.owner_id) | |
| 1556 | ||
| 1557 | u2api = UserApi( | |
| 1558 | session=self.session, | |
| 1559 | config=self.app_config, | |
| 1560 | current_user=None, | |
| 1561 | ) | |
| 1562 | u2 = u2api.get_one(u2id) | |
| 1563 | api2 = ContentApi( | |
| 1564 | current_user=u2, | |
| 1565 | session=self.session, | |
| 1566 | config=self.app_config, | |
| 1567 | show_archived=True, | |
| 1568 | ) | |
| 1569 | content2 = api2.get_one(pcid, ContentType.Any, workspace) | |
| 1570 | with new_revision( | |
| 1571 | session=self.session, | |
| 1572 | tm=transaction.manager, | |
| 1573 | content=content2, | |
| 1574 | ): | |
| 1575 | api2.archive(content2) | |
| 1576 | api2.save(content2) | |
| 1577 | transaction.commit() | |
| 1578 | ||
| 1579 | # refresh after commit | |
| 1580 | user1 = UserApi( | |
| 1581 | current_user=None, | |
| 1582 | session=self.session, | |
| 1583 | config=self.app_config, | |
| 1584 | ).get_one(u1id) | |
| 1585 | workspace = WorkspaceApi( | |
| 1586 | current_user=user1, | |
| 1587 | session=self.session, | |
| 1588 | ).get_one(wid) | |
| 1589 | u2 = UserApi( | |
| 1590 | current_user=None, | |
| 1591 | session=self.session, | |
| 1592 | config=self.app_config, | |
| 1593 | ).get_one(u2id) | |
| 1594 | api = ContentApi( | |
| 1595 | current_user=user1, | |
| 1596 | session=self.session, | |
| 1597 | config=self.app_config, | |
| 1598 | show_archived=True, | |
| 1599 | ) | |
| 1600 | api2 = ContentApi( | |
| 1601 | current_user=u2, | |
| 1602 | session=self.session, | |
| 1603 | config=self.app_config, | |
| 1604 | show_archived=True, | |
| 1605 | ) | |
| 1606 | ||
| 1607 | updated = api2.get_one(pcid, ContentType.Any, workspace) | |
| 1608 | eq_(u2id, updated.owner_id, | |
| 1609 |             'the owner id should be {} (found {})'.format(u2id, | |
| 1610 | updated.owner_id)) | |
| 1611 | eq_(True, updated.is_archived) | |
| 1612 | eq_(ActionDescription.ARCHIVING, updated.revision_type) | |
| 1613 | ||
| 1614 | #### | |
| 1615 | ||
| 1616 | updated2 = api.get_one(pcid, ContentType.Any, workspace) | |
| 1617 | with new_revision( | |
| 1618 | session=self.session, | |
| 1619 | tm=transaction.manager, | |
| 1620 | content=updated, | |
| 1621 | ||
| 1622 | ): | |
| 1623 | api.unarchive(updated) | |
| 1624 | api.save(updated2) | |
| 1625 | eq_(False, updated2.is_archived) | |
| 1626 | eq_(ActionDescription.UNARCHIVING, updated2.revision_type) | |
| 1627 | eq_(u1id, updated2.owner_id) | |
| 1628 | ||
| 1629 | def test_delete_undelete(self): | |
| 1630 | uapi = UserApi( | |