@@ 2604-2820 (lines=217) @@ | ||
2601 | ), status=403) |
|
2602 | ||
2603 | ||
2604 | class TestUserDisableWorkspaceNotification(FunctionalTest): |
|
2605 | """ |
|
2606 | Tests for /api/v2/users/{user_id}/workspaces/{workspace_id}/unnotify |
|
2607 | """ |
|
2608 | def test_api_disable_user_workspace_notification__ok__200__admin(self): |
|
2609 | # init DB |
|
2610 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2611 | admin = dbsession.query(models.User) \ |
|
2612 | .filter(models.User.email == '[email protected]') \ |
|
2613 | .one() |
|
2614 | workspace_api = WorkspaceApi( |
|
2615 | current_user=admin, |
|
2616 | session=dbsession, |
|
2617 | config=self.app_config |
|
2618 | ||
2619 | ) |
|
2620 | workspace = WorkspaceApi( |
|
2621 | current_user=admin, |
|
2622 | session=dbsession, |
|
2623 | config=self.app_config, |
|
2624 | ).create_workspace( |
|
2625 | 'test workspace', |
|
2626 | save_now=True |
|
2627 | ) |
|
2628 | uapi = UserApi( |
|
2629 | current_user=admin, |
|
2630 | session=dbsession, |
|
2631 | config=self.app_config, |
|
2632 | ) |
|
2633 | gapi = GroupApi( |
|
2634 | current_user=admin, |
|
2635 | session=dbsession, |
|
2636 | config=self.app_config, |
|
2637 | ) |
|
2638 | groups = [gapi.get_one_with_name('users')] |
|
2639 | test_user = uapi.create_user( |
|
2640 | email='[email protected]', |
|
2641 | password='pass', |
|
2642 | name='bob', |
|
2643 | groups=groups, |
|
2644 | timezone='Europe/Paris', |
|
2645 | lang='fr', |
|
2646 | do_save=True, |
|
2647 | do_notify=True, |
|
2648 | ) |
|
2649 | rapi = RoleApi( |
|
2650 | current_user=admin, |
|
2651 | session=dbsession, |
|
2652 | config=self.app_config, |
|
2653 | ) |
|
2654 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=True) # nopep8 |
|
2655 | transaction.commit() |
|
2656 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
2657 | assert role.do_notify is True |
|
2658 | self.testapp.authorization = ( |
|
2659 | 'Basic', |
|
2660 | ( |
|
2661 | '[email protected]', |
|
2662 | '[email protected]' |
|
2663 | ) |
|
2664 | ) |
|
2665 | self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/unnotify'.format( # nopep8 |
|
2666 | user_id=test_user.user_id, |
|
2667 | workspace_id=workspace.workspace_id |
|
2668 | ), status=204) |
|
2669 | ||
2670 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2671 | rapi = RoleApi( |
|
2672 | current_user=admin, |
|
2673 | session=dbsession, |
|
2674 | config=self.app_config, |
|
2675 | ) |
|
2676 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
2677 | assert role.do_notify is False |
|
2678 | ||
2679 | def test_api_enable_user_workspace_notification__ok__200__user_itself(self): |
|
2680 | # init DB |
|
2681 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2682 | admin = dbsession.query(models.User) \ |
|
2683 | .filter(models.User.email == '[email protected]') \ |
|
2684 | .one() |
|
2685 | workspace_api = WorkspaceApi( |
|
2686 | current_user=admin, |
|
2687 | session=dbsession, |
|
2688 | config=self.app_config |
|
2689 | ||
2690 | ) |
|
2691 | workspace = WorkspaceApi( |
|
2692 | current_user=admin, |
|
2693 | session=dbsession, |
|
2694 | config=self.app_config, |
|
2695 | ).create_workspace( |
|
2696 | 'test workspace', |
|
2697 | save_now=True |
|
2698 | ) |
|
2699 | uapi = UserApi( |
|
2700 | current_user=admin, |
|
2701 | session=dbsession, |
|
2702 | config=self.app_config, |
|
2703 | ) |
|
2704 | gapi = GroupApi( |
|
2705 | current_user=admin, |
|
2706 | session=dbsession, |
|
2707 | config=self.app_config, |
|
2708 | ) |
|
2709 | groups = [gapi.get_one_with_name('users')] |
|
2710 | test_user = uapi.create_user( |
|
2711 | email='[email protected]', |
|
2712 | password='pass', |
|
2713 | name='bob', |
|
2714 | groups=groups, |
|
2715 | timezone='Europe/Paris', |
|
2716 | lang='fr', |
|
2717 | do_save=True, |
|
2718 | do_notify=False, |
|
2719 | ) |
|
2720 | rapi = RoleApi( |
|
2721 | current_user=admin, |
|
2722 | session=dbsession, |
|
2723 | config=self.app_config, |
|
2724 | ) |
|
2725 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=True) # nopep8 |
|
2726 | transaction.commit() |
|
2727 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
2728 | assert role.do_notify is True |
|
2729 | self.testapp.authorization = ( |
|
2730 | 'Basic', |
|
2731 | ( |
|
2732 | '[email protected]', |
|
2733 | 'pass', |
|
2734 | ) |
|
2735 | ) |
|
2736 | self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/unnotify'.format( # nopep8 |
|
2737 | user_id=test_user.user_id, |
|
2738 | workspace_id=workspace.workspace_id |
|
2739 | ), status=204) |
|
2740 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2741 | rapi = RoleApi( |
|
2742 | current_user=admin, |
|
2743 | session=dbsession, |
|
2744 | config=self.app_config, |
|
2745 | ) |
|
2746 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
2747 | assert role.do_notify is False |
|
2748 | ||
2749 | def test_api_disable_user_workspace_notification__err__403__other_user(self): |
|
2750 | # init DB |
|
2751 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2752 | admin = dbsession.query(models.User) \ |
|
2753 | .filter(models.User.email == '[email protected]') \ |
|
2754 | .one() |
|
2755 | workspace_api = WorkspaceApi( |
|
2756 | current_user=admin, |
|
2757 | session=dbsession, |
|
2758 | config=self.app_config |
|
2759 | ||
2760 | ) |
|
2761 | workspace = WorkspaceApi( |
|
2762 | current_user=admin, |
|
2763 | session=dbsession, |
|
2764 | config=self.app_config, |
|
2765 | ).create_workspace( |
|
2766 | 'test workspace', |
|
2767 | save_now=True |
|
2768 | ) |
|
2769 | uapi = UserApi( |
|
2770 | current_user=admin, |
|
2771 | session=dbsession, |
|
2772 | config=self.app_config, |
|
2773 | ) |
|
2774 | gapi = GroupApi( |
|
2775 | current_user=admin, |
|
2776 | session=dbsession, |
|
2777 | config=self.app_config, |
|
2778 | ) |
|
2779 | groups = [gapi.get_one_with_name('users')] |
|
2780 | test_user = uapi.create_user( |
|
2781 | email='[email protected]', |
|
2782 | password='pass', |
|
2783 | name='bob', |
|
2784 | groups=groups, |
|
2785 | timezone='Europe/Paris', |
|
2786 | lang='fr', |
|
2787 | do_save=True, |
|
2788 | do_notify=False, |
|
2789 | ) |
|
2790 | test_user2 = uapi.create_user( |
|
2791 | email='[email protected]', |
|
2792 | password='pass', |
|
2793 | name='boby', |
|
2794 | groups=groups, |
|
2795 | timezone='Europe/Paris', |
|
2796 | lang='fr', |
|
2797 | do_save=True, |
|
2798 | do_notify=False, |
|
2799 | ) |
|
2800 | rapi = RoleApi( |
|
2801 | current_user=admin, |
|
2802 | session=dbsession, |
|
2803 | config=self.app_config, |
|
2804 | ) |
|
2805 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=True) # nopep8 |
|
2806 | rapi.create_one(test_user2, workspace, UserRoleInWorkspace.READER, with_notif=False) # nopep8 |
|
2807 | transaction.commit() |
|
2808 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
2809 | assert role.do_notify is True |
|
2810 | self.testapp.authorization = ( |
|
2811 | 'Basic', |
|
2812 | ( |
|
2813 | '[email protected]', |
|
2814 | 'pass', |
|
2815 | ) |
|
2816 | ) |
|
2817 | self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/unnotify'.format( # nopep8 |
|
2818 | user_id=test_user.user_id, |
|
2819 | workspace_id=workspace.workspace_id |
|
2820 | ), status=403) |
|
2821 | ||
2822 | ||
2823 | class TestUserWorkspaceEndpoint(FunctionalTest): |
|
@@ 2385-2601 (lines=217) @@ | ||
2382 | ) |
|
2383 | ||
2384 | ||
2385 | class TestUserEnableWorkspaceNotification(FunctionalTest): |
|
2386 | """ |
|
2387 | Tests for /api/v2/users/{user_id}/workspaces/{workspace_id}/notify |
|
2388 | """ |
|
2389 | def test_api_enable_user_workspace_notification__ok__200__admin(self): |
|
2390 | # init DB |
|
2391 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2392 | admin = dbsession.query(models.User) \ |
|
2393 | .filter(models.User.email == '[email protected]') \ |
|
2394 | .one() |
|
2395 | workspace_api = WorkspaceApi( |
|
2396 | current_user=admin, |
|
2397 | session=dbsession, |
|
2398 | config=self.app_config |
|
2399 | ||
2400 | ) |
|
2401 | workspace = WorkspaceApi( |
|
2402 | current_user=admin, |
|
2403 | session=dbsession, |
|
2404 | config=self.app_config, |
|
2405 | ).create_workspace( |
|
2406 | 'test workspace', |
|
2407 | save_now=True |
|
2408 | ) |
|
2409 | uapi = UserApi( |
|
2410 | current_user=admin, |
|
2411 | session=dbsession, |
|
2412 | config=self.app_config, |
|
2413 | ) |
|
2414 | gapi = GroupApi( |
|
2415 | current_user=admin, |
|
2416 | session=dbsession, |
|
2417 | config=self.app_config, |
|
2418 | ) |
|
2419 | groups = [gapi.get_one_with_name('users')] |
|
2420 | test_user = uapi.create_user( |
|
2421 | email='[email protected]', |
|
2422 | password='pass', |
|
2423 | name='bob', |
|
2424 | groups=groups, |
|
2425 | timezone='Europe/Paris', |
|
2426 | lang='fr', |
|
2427 | do_save=True, |
|
2428 | do_notify=False, |
|
2429 | ) |
|
2430 | rapi = RoleApi( |
|
2431 | current_user=admin, |
|
2432 | session=dbsession, |
|
2433 | config=self.app_config, |
|
2434 | ) |
|
2435 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=False) # nopep8 |
|
2436 | transaction.commit() |
|
2437 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
2438 | assert role.do_notify is False |
|
2439 | self.testapp.authorization = ( |
|
2440 | 'Basic', |
|
2441 | ( |
|
2442 | '[email protected]', |
|
2443 | '[email protected]' |
|
2444 | ) |
|
2445 | ) |
|
2446 | self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/notify'.format( # nopep8 |
|
2447 | user_id=test_user.user_id, |
|
2448 | workspace_id=workspace.workspace_id |
|
2449 | ), status=204) |
|
2450 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2451 | rapi = RoleApi( |
|
2452 | current_user=admin, |
|
2453 | session=dbsession, |
|
2454 | config=self.app_config, |
|
2455 | ) |
|
2456 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
2457 | assert role.do_notify is True |
|
2458 | ||
2459 | def test_api_enable_user_workspace_notification__ok__200__user_itself(self): |
|
2460 | # init DB |
|
2461 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2462 | admin = dbsession.query(models.User) \ |
|
2463 | .filter(models.User.email == '[email protected]') \ |
|
2464 | .one() |
|
2465 | workspace_api = WorkspaceApi( |
|
2466 | current_user=admin, |
|
2467 | session=dbsession, |
|
2468 | config=self.app_config |
|
2469 | ||
2470 | ) |
|
2471 | workspace = WorkspaceApi( |
|
2472 | current_user=admin, |
|
2473 | session=dbsession, |
|
2474 | config=self.app_config, |
|
2475 | ).create_workspace( |
|
2476 | 'test workspace', |
|
2477 | save_now=True |
|
2478 | ) |
|
2479 | uapi = UserApi( |
|
2480 | current_user=admin, |
|
2481 | session=dbsession, |
|
2482 | config=self.app_config, |
|
2483 | ) |
|
2484 | gapi = GroupApi( |
|
2485 | current_user=admin, |
|
2486 | session=dbsession, |
|
2487 | config=self.app_config, |
|
2488 | ) |
|
2489 | groups = [gapi.get_one_with_name('users')] |
|
2490 | test_user = uapi.create_user( |
|
2491 | email='[email protected]', |
|
2492 | password='pass', |
|
2493 | name='bob', |
|
2494 | groups=groups, |
|
2495 | timezone='Europe/Paris', |
|
2496 | lang='fr', |
|
2497 | do_save=True, |
|
2498 | do_notify=False, |
|
2499 | ) |
|
2500 | rapi = RoleApi( |
|
2501 | current_user=admin, |
|
2502 | session=dbsession, |
|
2503 | config=self.app_config, |
|
2504 | ) |
|
2505 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=False) # nopep8 |
|
2506 | transaction.commit() |
|
2507 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
2508 | assert role.do_notify is False |
|
2509 | self.testapp.authorization = ( |
|
2510 | 'Basic', |
|
2511 | ( |
|
2512 | '[email protected]', |
|
2513 | 'pass', |
|
2514 | ) |
|
2515 | ) |
|
2516 | self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/notify'.format( # nopep8 |
|
2517 | user_id=test_user.user_id, |
|
2518 | workspace_id=workspace.workspace_id |
|
2519 | ), status=204) |
|
2520 | ||
2521 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2522 | rapi = RoleApi( |
|
2523 | current_user=admin, |
|
2524 | session=dbsession, |
|
2525 | config=self.app_config, |
|
2526 | ) |
|
2527 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
2528 | assert role.do_notify is True |
|
2529 | ||
2530 | def test_api_enable_user_workspace_notification__err__403__other_user(self): |
|
2531 | # init DB |
|
2532 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2533 | admin = dbsession.query(models.User) \ |
|
2534 | .filter(models.User.email == '[email protected]') \ |
|
2535 | .one() |
|
2536 | workspace_api = WorkspaceApi( |
|
2537 | current_user=admin, |
|
2538 | session=dbsession, |
|
2539 | config=self.app_config |
|
2540 | ||
2541 | ) |
|
2542 | workspace = WorkspaceApi( |
|
2543 | current_user=admin, |
|
2544 | session=dbsession, |
|
2545 | config=self.app_config, |
|
2546 | ).create_workspace( |
|
2547 | 'test workspace', |
|
2548 | save_now=True |
|
2549 | ) |
|
2550 | uapi = UserApi( |
|
2551 | current_user=admin, |
|
2552 | session=dbsession, |
|
2553 | config=self.app_config, |
|
2554 | ) |
|
2555 | gapi = GroupApi( |
|
2556 | current_user=admin, |
|
2557 | session=dbsession, |
|
2558 | config=self.app_config, |
|
2559 | ) |
|
2560 | groups = [gapi.get_one_with_name('users')] |
|
2561 | test_user = uapi.create_user( |
|
2562 | email='[email protected]', |
|
2563 | password='pass', |
|
2564 | name='bob', |
|
2565 | groups=groups, |
|
2566 | timezone='Europe/Paris', |
|
2567 | lang='fr', |
|
2568 | do_save=True, |
|
2569 | do_notify=False, |
|
2570 | ) |
|
2571 | test_user2 = uapi.create_user( |
|
2572 | email='[email protected]', |
|
2573 | password='pass', |
|
2574 | name='boby', |
|
2575 | groups=groups, |
|
2576 | timezone='Europe/Paris', |
|
2577 | lang='fr', |
|
2578 | do_save=True, |
|
2579 | do_notify=False, |
|
2580 | ) |
|
2581 | rapi = RoleApi( |
|
2582 | current_user=admin, |
|
2583 | session=dbsession, |
|
2584 | config=self.app_config, |
|
2585 | ) |
|
2586 | rapi.create_one(test_user, workspace, UserRoleInWorkspace.READER, with_notif=False) # nopep8 |
|
2587 | rapi.create_one(test_user2, workspace, UserRoleInWorkspace.READER, with_notif=False) # nopep8 |
|
2588 | transaction.commit() |
|
2589 | role = rapi.get_one(test_user.user_id, workspace.workspace_id) |
|
2590 | assert role.do_notify is False |
|
2591 | self.testapp.authorization = ( |
|
2592 | 'Basic', |
|
2593 | ( |
|
2594 | '[email protected]', |
|
2595 | 'pass', |
|
2596 | ) |
|
2597 | ) |
|
2598 | self.testapp.put_json('/api/v2/users/{user_id}/workspaces/{workspace_id}/notify'.format( # nopep8 |
|
2599 | user_id=test_user.user_id, |
|
2600 | workspace_id=workspace.workspace_id |
|
2601 | ), status=403) |
|
2602 | ||
2603 | ||
2604 | class TestUserDisableWorkspaceNotification(FunctionalTest): |