2707 |
2707 |
assert not Profile.objects.filter(user=user, profile_type=profile_type)
|
2708 |
2708 |
|
2709 |
2709 |
app.delete('/api/users/%s/profiles/one-type/' % user.uuid, status=404)
|
|
2710 |
|
|
2711 |
|
|
2712 |
def test_profile_type_get(app, superuser):
|
|
2713 |
app.authorization = ('Basic', (superuser.username, superuser.username))
|
|
2714 |
|
|
2715 |
resp = app.get('/api/profile-types/')
|
|
2716 |
assert not resp.json['count']
|
|
2717 |
assert not resp.json['results']
|
|
2718 |
|
|
2719 |
profile_type = ProfileType.objects.create(slug='one-type', name='One Type')
|
|
2720 |
resp = app.get('/api/profile-types/')
|
|
2721 |
assert resp.json['count'] == 1
|
|
2722 |
assert len(resp.json['results']) == 1
|
|
2723 |
assert resp.json['results'][0] == {
|
|
2724 |
'id': profile_type.id,
|
|
2725 |
'slug': 'one-type',
|
|
2726 |
'uuid': profile_type.uuid,
|
|
2727 |
'name': 'One Type',
|
|
2728 |
'allowed_services': [],
|
|
2729 |
}
|
|
2730 |
|
|
2731 |
service = Service.objects.create(name='My Service', slug='my-service')
|
|
2732 |
profile_type2 = ProfileType.objects.create(slug='other-type', name='Other Type')
|
|
2733 |
profile_type2.allowed_services.add(service)
|
|
2734 |
profile_type2.save()
|
|
2735 |
|
|
2736 |
resp = app.get('/api/profile-types/')
|
|
2737 |
assert resp.json['count'] == 2
|
|
2738 |
assert len(resp.json['results']) == 2
|
|
2739 |
assert resp.json['results'] == [
|
|
2740 |
{
|
|
2741 |
'id': profile_type.id,
|
|
2742 |
'slug': 'one-type',
|
|
2743 |
'uuid': profile_type.uuid,
|
|
2744 |
'name': 'One Type',
|
|
2745 |
'allowed_services': [],
|
|
2746 |
},
|
|
2747 |
{
|
|
2748 |
'id': profile_type2.id,
|
|
2749 |
'slug': 'other-type',
|
|
2750 |
'uuid': profile_type2.uuid,
|
|
2751 |
'name': 'Other Type',
|
|
2752 |
'allowed_services': ['my-service'],
|
|
2753 |
},
|
|
2754 |
]
|
|
2755 |
|
|
2756 |
resp = app.get('/api/profile-types/%s/' % profile_type.uuid)
|
|
2757 |
assert resp.json == {
|
|
2758 |
'id': profile_type.id,
|
|
2759 |
'slug': 'one-type',
|
|
2760 |
'uuid': profile_type.uuid,
|
|
2761 |
'name': 'One Type',
|
|
2762 |
'allowed_services': [],
|
|
2763 |
}
|
|
2764 |
|
|
2765 |
service2 = Service.objects.create(name='My Service 2', slug='my-service-2')
|
|
2766 |
profile_type2.allowed_services.add(service2)
|
|
2767 |
profile_type2.save()
|
|
2768 |
|
|
2769 |
resp = app.get('/api/profile-types/%s/' % profile_type2.uuid)
|
|
2770 |
assert resp.json == {
|
|
2771 |
'id': profile_type2.id,
|
|
2772 |
'slug': 'other-type',
|
|
2773 |
'uuid': profile_type2.uuid,
|
|
2774 |
'name': 'Other Type',
|
|
2775 |
'allowed_services': ['my-service', 'my-service-2'],
|
|
2776 |
}
|
|
2777 |
|
|
2778 |
|
|
2779 |
def test_profile_type_post(app, superuser):
|
|
2780 |
app.authorization = ('Basic', (superuser.username, superuser.username))
|
|
2781 |
|
|
2782 |
payload = {
|
|
2783 |
'slug': 'one-type',
|
|
2784 |
'name': 'One Type',
|
|
2785 |
'allowed_services': [],
|
|
2786 |
}
|
|
2787 |
|
|
2788 |
assert not ProfileType.objects.filter(slug='one-type')
|
|
2789 |
|
|
2790 |
resp = app.post_json('/api/profile-types/', params=payload)
|
|
2791 |
profile_type = ProfileType.objects.get(slug='one-type')
|
|
2792 |
|
|
2793 |
assert resp.json['slug'] == 'one-type'
|
|
2794 |
assert resp.json['name'] == 'One Type'
|
|
2795 |
assert resp.json['allowed_services'] == []
|
|
2796 |
assert resp.json['uuid'] == profile_type.uuid
|
|
2797 |
assert resp.json['id'] == profile_type.id
|
|
2798 |
|
|
2799 |
Service.objects.create(name='My Service', slug='my-service')
|
|
2800 |
Service.objects.create(name='My Service 2', slug='my-service-2')
|
|
2801 |
|
|
2802 |
payload = {
|
|
2803 |
'slug': 'other-type',
|
|
2804 |
'name': 'Other Type',
|
|
2805 |
'allowed_services': ['my-service', 'my-service-2'],
|
|
2806 |
}
|
|
2807 |
|
|
2808 |
assert not ProfileType.objects.filter(slug='other-type')
|
|
2809 |
|
|
2810 |
resp = app.post_json('/api/profile-types/', params=payload)
|
|
2811 |
profile_type = ProfileType.objects.get(slug='other-type')
|
|
2812 |
|
|
2813 |
assert resp.json['slug'] == 'other-type'
|
|
2814 |
assert resp.json['name'] == 'Other Type'
|
|
2815 |
assert resp.json['allowed_services'] == ['my-service', 'my-service-2']
|
|
2816 |
assert resp.json['uuid'] == profile_type.uuid
|
|
2817 |
assert resp.json['id'] == profile_type.id
|
|
2818 |
|
|
2819 |
|
|
2820 |
def test_profile_type_get_or_create(app, superuser):
|
|
2821 |
app.authorization = ('Basic', (superuser.username, superuser.username))
|
|
2822 |
|
|
2823 |
payload = {
|
|
2824 |
'slug': 'one-type',
|
|
2825 |
'name': 'One Type',
|
|
2826 |
'allowed_services': [],
|
|
2827 |
}
|
|
2828 |
|
|
2829 |
assert not ProfileType.objects.filter(slug='one-type')
|
|
2830 |
|
|
2831 |
resp = app.post_json('/api/profile-types/?get_or_create=slug', params=payload)
|
|
2832 |
profile_type = ProfileType.objects.get(slug='one-type')
|
|
2833 |
number_of_profiles = len(ProfileType.objects.all())
|
|
2834 |
|
|
2835 |
assert resp.json['slug'] == 'one-type'
|
|
2836 |
assert resp.json['name'] == 'One Type'
|
|
2837 |
assert resp.json['allowed_services'] == []
|
|
2838 |
assert resp.json['uuid'] == profile_type.uuid
|
|
2839 |
assert resp.json['id'] == profile_type.id
|
|
2840 |
|
|
2841 |
app.post_json('/api/profile-types/?get_or_create=slug', params=payload)
|
|
2842 |
ProfileType.objects.get(slug='one-type')
|
|
2843 |
assert number_of_profiles == len(ProfileType.objects.all())
|
|
2844 |
|
|
2845 |
|
|
2846 |
def test_profile_type_update_or_create(app, superuser):
|
|
2847 |
app.authorization = ('Basic', (superuser.username, superuser.username))
|
|
2848 |
|
|
2849 |
payload = {
|
|
2850 |
'slug': 'one-type',
|
|
2851 |
'name': 'One Type',
|
|
2852 |
'allowed_services': [],
|
|
2853 |
}
|
|
2854 |
|
|
2855 |
assert not ProfileType.objects.filter(slug='one-type')
|
|
2856 |
|
|
2857 |
resp = app.post_json('/api/profile-types/?update_or_create=slug', params=payload)
|
|
2858 |
profile_type = ProfileType.objects.get(slug='one-type')
|
|
2859 |
number_of_profiles = len(ProfileType.objects.all())
|
|
2860 |
|
|
2861 |
assert resp.json['slug'] == 'one-type'
|
|
2862 |
assert resp.json['name'] == 'One Type'
|
|
2863 |
assert resp.json['allowed_services'] == []
|
|
2864 |
assert resp.json['uuid'] == profile_type.uuid
|
|
2865 |
assert resp.json['id'] == profile_type.id
|
|
2866 |
|
|
2867 |
payload['name'] = 'Not the same type name'
|
|
2868 |
app.post_json('/api/profile-types/?update_or_create=slug', params=payload)
|
|
2869 |
profile_type = ProfileType.objects.get(slug='one-type')
|
|
2870 |
assert number_of_profiles == len(ProfileType.objects.all())
|
|
2871 |
assert profile_type.name == 'Not the same type name'
|
|
2872 |
|
|
2873 |
|
|
2874 |
def test_profile_type_delete(app, superuser):
|
|
2875 |
app.authorization = ('Basic', (superuser.username, superuser.username))
|
|
2876 |
|
|
2877 |
profile_type = ProfileType.objects.create(slug='one-type', name='One Type')
|
|
2878 |
profile_type2 = ProfileType.objects.create(slug='other-type', name='Other Type')
|
|
2879 |
|
|
2880 |
resp = app.delete('/api/profile-types/%s/' % profile_type.uuid)
|
|
2881 |
assert resp.status_code == 204
|
|
2882 |
assert not ProfileType.objects.filter(slug='one-type')
|
|
2883 |
|
|
2884 |
resp = app.delete('/api/profile-types/%s/' % profile_type2.uuid)
|
|
2885 |
assert resp.status_code == 204
|
|
2886 |
assert not ProfileType.objects.filter(slug='other-type')
|
2710 |
|
-
|