@@ 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): |