| @@ 2799-3018 (lines=220) @@ | ||
| 2796 | assert res.json_body['code'] == error.INSUFFICIENT_USER_PROFILE |
|
| 2797 | ||
| 2798 | ||
| 2799 | class TestUserDisableWorkspaceNotification(FunctionalTest): |
|
| 2800 | """ |
|
| 2801 | Tests for /api/v2/users/{user_id}/workspaces/{workspace_id}/notifications/deactivate # nopep8 |
|
| 2802 | """ |
|
| 2803 | def test_api_disable_user_workspace_notification__ok__200__admin(self): |
|
| 2804 | # init DB |
|
| 2805 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 2806 | admin = dbsession.query(models.User) \ |
|
| 2807 | .filter(models.User.email == '[email protected]') \ |
|
| 2808 | .one() |
|
| 2809 | workspace_api = WorkspaceApi( |
|
| 2810 | current_user=admin, |
|
| 2811 | session=dbsession, |
|
| 2812 | config=self.app_config |
|
| 2813 | ||
| 2814 | ) |
|
| 2815 | workspace = WorkspaceApi( |
|
| 2816 | current_user=admin, |
|
| 2817 | session=dbsession, |
|
| 2818 | config=self.app_config, |
|
| 2819 | ).create_workspace( |
|
| 2820 | 'test workspace', |
|
| 2821 | save_now=True |
|
| 2822 | ) |
|
| 2823 | uapi = UserApi( |
|
| 2824 | current_user=admin, |
|
| 2825 | session=dbsession, |
|
| 2826 | config=self.app_config, |
|
| 2827 | ) |
|
| 2828 | gapi = GroupApi( |
|
| 2829 | current_user=admin, |
|
| 2830 | session=dbsession, |
|
| 2831 | config=self.app_config, |
|
| 2832 | ) |
|
| 2833 | groups = [gapi.get_one_with_name('users')] |
|
| 2834 | test_user = uapi.create_user( |
|
| 2835 | email='[email protected]', |
|
| 2836 | password='pass', |
|
| 2837 | name='bob', |
|
| 2838 | groups=groups, |
|
| 2839 | timezone='Europe/Paris', |
|
| 2840 | lang='fr', |
|
| 2841 | do_save=True, |
|
| 2842 | do_notify=False, |
|
| 2843 | ) |
|
| 2844 | rapi = RoleApi( |
|
| 2845 | current_user=admin, |
|
| 2846 | session=dbsession, |
|
| 2847 | config=self.app_config, |
|
| 2848 | ) |
|
| 2849 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=True) # nopep8 |
|
| 2850 | transaction.commit() |
|
| 2851 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
| 2852 | assert role.do_notify is True |
|
| 2853 | self.testapp.authorization = ( |
|
| 2854 | 'Basic', |
|
| 2855 | ( |
|
| 2856 | '[email protected]', |
|
| 2857 | '[email protected]' |
|
| 2858 | ) |
|
| 2859 | ) |
|
| 2860 | self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/notifications/deactivate'.format( # nopep8 |
|
| 2861 | user_id=test_user.user_id, |
|
| 2862 | workspace_id=workspace.workspace_id |
|
| 2863 | ), status=204) |
|
| 2864 | ||
| 2865 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 2866 | rapi = RoleApi( |
|
| 2867 | current_user=admin, |
|
| 2868 | session=dbsession, |
|
| 2869 | config=self.app_config, |
|
| 2870 | ) |
|
| 2871 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
| 2872 | assert role.do_notify is False |
|
| 2873 | ||
| 2874 | def test_api_enable_user_workspace_notification__ok__200__user_itself(self): |
|
| 2875 | # init DB |
|
| 2876 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 2877 | admin = dbsession.query(models.User) \ |
|
| 2878 | .filter(models.User.email == '[email protected]') \ |
|
| 2879 | .one() |
|
| 2880 | workspace_api = WorkspaceApi( |
|
| 2881 | current_user=admin, |
|
| 2882 | session=dbsession, |
|
| 2883 | config=self.app_config |
|
| 2884 | ||
| 2885 | ) |
|
| 2886 | workspace = WorkspaceApi( |
|
| 2887 | current_user=admin, |
|
| 2888 | session=dbsession, |
|
| 2889 | config=self.app_config, |
|
| 2890 | ).create_workspace( |
|
| 2891 | 'test workspace', |
|
| 2892 | save_now=True |
|
| 2893 | ) |
|
| 2894 | uapi = UserApi( |
|
| 2895 | current_user=admin, |
|
| 2896 | session=dbsession, |
|
| 2897 | config=self.app_config, |
|
| 2898 | ) |
|
| 2899 | gapi = GroupApi( |
|
| 2900 | current_user=admin, |
|
| 2901 | session=dbsession, |
|
| 2902 | config=self.app_config, |
|
| 2903 | ) |
|
| 2904 | groups = [gapi.get_one_with_name('users')] |
|
| 2905 | test_user = uapi.create_user( |
|
| 2906 | email='[email protected]', |
|
| 2907 | password='pass', |
|
| 2908 | name='bob', |
|
| 2909 | groups=groups, |
|
| 2910 | timezone='Europe/Paris', |
|
| 2911 | lang='fr', |
|
| 2912 | do_save=True, |
|
| 2913 | do_notify=False, |
|
| 2914 | ) |
|
| 2915 | rapi = RoleApi( |
|
| 2916 | current_user=admin, |
|
| 2917 | session=dbsession, |
|
| 2918 | config=self.app_config, |
|
| 2919 | ) |
|
| 2920 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=True) # nopep8 |
|
| 2921 | transaction.commit() |
|
| 2922 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
| 2923 | assert role.do_notify is True |
|
| 2924 | self.testapp.authorization = ( |
|
| 2925 | 'Basic', |
|
| 2926 | ( |
|
| 2927 | '[email protected]', |
|
| 2928 | 'pass', |
|
| 2929 | ) |
|
| 2930 | ) |
|
| 2931 | self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/notifications/deactivate'.format( # nopep8 |
|
| 2932 | user_id=test_user.user_id, |
|
| 2933 | workspace_id=workspace.workspace_id |
|
| 2934 | ), status=204) |
|
| 2935 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 2936 | rapi = RoleApi( |
|
| 2937 | current_user=admin, |
|
| 2938 | session=dbsession, |
|
| 2939 | config=self.app_config, |
|
| 2940 | ) |
|
| 2941 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
| 2942 | assert role.do_notify is False |
|
| 2943 | ||
| 2944 | def test_api_disable_user_workspace_notification__err__403__other_user(self): |
|
| 2945 | # init DB |
|
| 2946 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 2947 | admin = dbsession.query(models.User) \ |
|
| 2948 | .filter(models.User.email == '[email protected]') \ |
|
| 2949 | .one() |
|
| 2950 | workspace_api = WorkspaceApi( |
|
| 2951 | current_user=admin, |
|
| 2952 | session=dbsession, |
|
| 2953 | config=self.app_config |
|
| 2954 | ||
| 2955 | ) |
|
| 2956 | workspace = WorkspaceApi( |
|
| 2957 | current_user=admin, |
|
| 2958 | session=dbsession, |
|
| 2959 | config=self.app_config, |
|
| 2960 | ).create_workspace( |
|
| 2961 | 'test workspace', |
|
| 2962 | save_now=True |
|
| 2963 | ) |
|
| 2964 | uapi = UserApi( |
|
| 2965 | current_user=admin, |
|
| 2966 | session=dbsession, |
|
| 2967 | config=self.app_config, |
|
| 2968 | ) |
|
| 2969 | gapi = GroupApi( |
|
| 2970 | current_user=admin, |
|
| 2971 | session=dbsession, |
|
| 2972 | config=self.app_config, |
|
| 2973 | ) |
|
| 2974 | groups = [gapi.get_one_with_name('users')] |
|
| 2975 | test_user = uapi.create_user( |
|
| 2976 | email='[email protected]', |
|
| 2977 | password='pass', |
|
| 2978 | name='bob', |
|
| 2979 | groups=groups, |
|
| 2980 | timezone='Europe/Paris', |
|
| 2981 | lang='fr', |
|
| 2982 | do_save=True, |
|
| 2983 | do_notify=False, |
|
| 2984 | ) |
|
| 2985 | test_user2 = uapi.create_user( |
|
| 2986 | email='[email protected]', |
|
| 2987 | password='pass', |
|
| 2988 | name='boby', |
|
| 2989 | groups=groups, |
|
| 2990 | timezone='Europe/Paris', |
|
| 2991 | lang='fr', |
|
| 2992 | do_save=True, |
|
| 2993 | do_notify=False, |
|
| 2994 | ) |
|
| 2995 | rapi = RoleApi( |
|
| 2996 | current_user=admin, |
|
| 2997 | session=dbsession, |
|
| 2998 | config=self.app_config, |
|
| 2999 | ) |
|
| 3000 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=True) # nopep8 |
|
| 3001 | rapi.create_one(test_user2, workspace, UserRoleInWorkspace.READER, with_notif=False) # nopep8 |
|
| 3002 | transaction.commit() |
|
| 3003 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
| 3004 | assert role.do_notify is True |
|
| 3005 | self.testapp.authorization = ( |
|
| 3006 | 'Basic', |
|
| 3007 | ( |
|
| 3008 | '[email protected]', |
|
| 3009 | 'pass', |
|
| 3010 | ) |
|
| 3011 | ) |
|
| 3012 | res = self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/notifications/deactivate'.format( # nopep8 |
|
| 3013 | user_id=test_user.user_id, |
|
| 3014 | workspace_id=workspace.workspace_id |
|
| 3015 | ), status=403) |
|
| 3016 | assert isinstance(res.json, dict) |
|
| 3017 | assert 'code' in res.json.keys() |
|
| 3018 | assert res.json_body['code'] == error.INSUFFICIENT_USER_PROFILE |
|
| 3019 | ||
| 3020 | ||
| 3021 | class TestUserWorkspaceEndpoint(FunctionalTest): |
|
| @@ 2577-2796 (lines=220) @@ | ||
| 2574 | assert res.json_body['code'] == error.INSUFFICIENT_USER_PROFILE |
|
| 2575 | ||
| 2576 | ||
| 2577 | class TestUserEnableWorkspaceNotification(FunctionalTest): |
|
| 2578 | """ |
|
| 2579 | Tests for /api/v2/users/{user_id}/workspaces/{workspace_id}/notifications/activate |
|
| 2580 | """ |
|
| 2581 | def test_api_enable_user_workspace_notification__ok__200__admin(self): |
|
| 2582 | # init DB |
|
| 2583 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 2584 | admin = dbsession.query(models.User) \ |
|
| 2585 | .filter(models.User.email == '[email protected]') \ |
|
| 2586 | .one() |
|
| 2587 | workspace_api = WorkspaceApi( |
|
| 2588 | current_user=admin, |
|
| 2589 | session=dbsession, |
|
| 2590 | config=self.app_config |
|
| 2591 | ||
| 2592 | ) |
|
| 2593 | workspace = WorkspaceApi( |
|
| 2594 | current_user=admin, |
|
| 2595 | session=dbsession, |
|
| 2596 | config=self.app_config, |
|
| 2597 | ).create_workspace( |
|
| 2598 | 'test workspace', |
|
| 2599 | save_now=True |
|
| 2600 | ) |
|
| 2601 | uapi = UserApi( |
|
| 2602 | current_user=admin, |
|
| 2603 | session=dbsession, |
|
| 2604 | config=self.app_config, |
|
| 2605 | ) |
|
| 2606 | gapi = GroupApi( |
|
| 2607 | current_user=admin, |
|
| 2608 | session=dbsession, |
|
| 2609 | config=self.app_config, |
|
| 2610 | ) |
|
| 2611 | groups = [gapi.get_one_with_name('users')] |
|
| 2612 | test_user = uapi.create_user( |
|
| 2613 | email='[email protected]', |
|
| 2614 | password='pass', |
|
| 2615 | name='bob', |
|
| 2616 | groups=groups, |
|
| 2617 | timezone='Europe/Paris', |
|
| 2618 | lang='fr', |
|
| 2619 | do_save=True, |
|
| 2620 | do_notify=False, |
|
| 2621 | ) |
|
| 2622 | rapi = RoleApi( |
|
| 2623 | current_user=admin, |
|
| 2624 | session=dbsession, |
|
| 2625 | config=self.app_config, |
|
| 2626 | ) |
|
| 2627 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=False) # nopep8 |
|
| 2628 | transaction.commit() |
|
| 2629 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
| 2630 | assert role.do_notify is False |
|
| 2631 | self.testapp.authorization = ( |
|
| 2632 | 'Basic', |
|
| 2633 | ( |
|
| 2634 | '[email protected]', |
|
| 2635 | '[email protected]' |
|
| 2636 | ) |
|
| 2637 | ) |
|
| 2638 | self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/notifications/activate'.format( # nopep8 |
|
| 2639 | user_id=test_user.user_id, |
|
| 2640 | workspace_id=workspace.workspace_id |
|
| 2641 | ), status=204) |
|
| 2642 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 2643 | rapi = RoleApi( |
|
| 2644 | current_user=admin, |
|
| 2645 | session=dbsession, |
|
| 2646 | config=self.app_config, |
|
| 2647 | ) |
|
| 2648 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
| 2649 | assert role.do_notify is True |
|
| 2650 | ||
| 2651 | def test_api_enable_user_workspace_notification__ok__200__user_itself(self): |
|
| 2652 | # init DB |
|
| 2653 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 2654 | admin = dbsession.query(models.User) \ |
|
| 2655 | .filter(models.User.email == '[email protected]') \ |
|
| 2656 | .one() |
|
| 2657 | workspace_api = WorkspaceApi( |
|
| 2658 | current_user=admin, |
|
| 2659 | session=dbsession, |
|
| 2660 | config=self.app_config |
|
| 2661 | ||
| 2662 | ) |
|
| 2663 | workspace = WorkspaceApi( |
|
| 2664 | current_user=admin, |
|
| 2665 | session=dbsession, |
|
| 2666 | config=self.app_config, |
|
| 2667 | ).create_workspace( |
|
| 2668 | 'test workspace', |
|
| 2669 | save_now=True |
|
| 2670 | ) |
|
| 2671 | uapi = UserApi( |
|
| 2672 | current_user=admin, |
|
| 2673 | session=dbsession, |
|
| 2674 | config=self.app_config, |
|
| 2675 | ) |
|
| 2676 | gapi = GroupApi( |
|
| 2677 | current_user=admin, |
|
| 2678 | session=dbsession, |
|
| 2679 | config=self.app_config, |
|
| 2680 | ) |
|
| 2681 | groups = [gapi.get_one_with_name('users')] |
|
| 2682 | test_user = uapi.create_user( |
|
| 2683 | email='[email protected]', |
|
| 2684 | password='pass', |
|
| 2685 | name='bob', |
|
| 2686 | groups=groups, |
|
| 2687 | timezone='Europe/Paris', |
|
| 2688 | lang='fr', |
|
| 2689 | do_save=True, |
|
| 2690 | do_notify=False, |
|
| 2691 | ) |
|
| 2692 | rapi = RoleApi( |
|
| 2693 | current_user=admin, |
|
| 2694 | session=dbsession, |
|
| 2695 | config=self.app_config, |
|
| 2696 | ) |
|
| 2697 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=False) # nopep8 |
|
| 2698 | transaction.commit() |
|
| 2699 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
| 2700 | assert role.do_notify is False |
|
| 2701 | self.testapp.authorization = ( |
|
| 2702 | 'Basic', |
|
| 2703 | ( |
|
| 2704 | '[email protected]', |
|
| 2705 | 'pass', |
|
| 2706 | ) |
|
| 2707 | ) |
|
| 2708 | self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/notifications/activate'.format( # nopep8 |
|
| 2709 | user_id=test_user.user_id, |
|
| 2710 | workspace_id=workspace.workspace_id |
|
| 2711 | ), status=204) |
|
| 2712 | ||
| 2713 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 2714 | rapi = RoleApi( |
|
| 2715 | current_user=admin, |
|
| 2716 | session=dbsession, |
|
| 2717 | config=self.app_config, |
|
| 2718 | ) |
|
| 2719 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
| 2720 | assert role.do_notify is True |
|
| 2721 | ||
| 2722 | def test_api_enable_user_workspace_notification__err__403__other_user(self): |
|
| 2723 | # init DB |
|
| 2724 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 2725 | admin = dbsession.query(models.User) \ |
|
| 2726 | .filter(models.User.email == '[email protected]') \ |
|
| 2727 | .one() |
|
| 2728 | workspace_api = WorkspaceApi( |
|
| 2729 | current_user=admin, |
|
| 2730 | session=dbsession, |
|
| 2731 | config=self.app_config |
|
| 2732 | ||
| 2733 | ) |
|
| 2734 | workspace = WorkspaceApi( |
|
| 2735 | current_user=admin, |
|
| 2736 | session=dbsession, |
|
| 2737 | config=self.app_config, |
|
| 2738 | ).create_workspace( |
|
| 2739 | 'test workspace', |
|
| 2740 | save_now=True |
|
| 2741 | ) |
|
| 2742 | uapi = UserApi( |
|
| 2743 | current_user=admin, |
|
| 2744 | session=dbsession, |
|
| 2745 | config=self.app_config, |
|
| 2746 | ) |
|
| 2747 | gapi = GroupApi( |
|
| 2748 | current_user=admin, |
|
| 2749 | session=dbsession, |
|
| 2750 | config=self.app_config, |
|
| 2751 | ) |
|
| 2752 | groups = [gapi.get_one_with_name('users')] |
|
| 2753 | test_user = uapi.create_user( |
|
| 2754 | email='[email protected]', |
|
| 2755 | password='pass', |
|
| 2756 | name='bob', |
|
| 2757 | groups=groups, |
|
| 2758 | timezone='Europe/Paris', |
|
| 2759 | lang='fr', |
|
| 2760 | do_save=True, |
|
| 2761 | do_notify=False, |
|
| 2762 | ) |
|
| 2763 | test_user2 = uapi.create_user( |
|
| 2764 | email='[email protected]', |
|
| 2765 | password='pass', |
|
| 2766 | name='boby', |
|
| 2767 | groups=groups, |
|
| 2768 | timezone='Europe/Paris', |
|
| 2769 | lang='fr', |
|
| 2770 | do_save=True, |
|
| 2771 | do_notify=False, |
|
| 2772 | ) |
|
| 2773 | rapi = RoleApi( |
|
| 2774 | current_user=admin, |
|
| 2775 | session=dbsession, |
|
| 2776 | config=self.app_config, |
|
| 2777 | ) |
|
| 2778 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=False) # nopep8 |
|
| 2779 | rapi.create_one(test_user2, workspace, UserRoleInWorkspace.READER, with_notif=False) # nopep8 |
|
| 2780 | transaction.commit() |
|
| 2781 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
| 2782 | assert role.do_notify is False |
|
| 2783 | self.testapp.authorization = ( |
|
| 2784 | 'Basic', |
|
| 2785 | ( |
|
| 2786 | '[email protected]', |
|
| 2787 | 'pass', |
|
| 2788 | ) |
|
| 2789 | ) |
|
| 2790 | res = self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/notifications/activate'.format( # nopep8 |
|
| 2791 | user_id=test_user.user_id, |
|
| 2792 | workspace_id=workspace.workspace_id |
|
| 2793 | ), status=403) |
|
| 2794 | assert isinstance(res.json, dict) |
|
| 2795 | assert 'code' in res.json.keys() |
|
| 2796 | assert res.json_body['code'] == error.INSUFFICIENT_USER_PROFILE |
|
| 2797 | ||
| 2798 | ||
| 2799 | class TestUserDisableWorkspaceNotification(FunctionalTest): |
|