Projet

Général

Profil

0002-pricing-remove-_as_manager-tests-65442.patch

Lauréline Guérin, 20 mai 2022 16:36

Télécharger (17,1 ko)

Voir les différences:

Subject: [PATCH 2/3] pricing: remove _as_manager tests (#65442)

 tests/pricing/test_manager.py | 273 ----------------------------------
 1 file changed, 273 deletions(-)
tests/pricing/test_manager.py
12 12
pytestmark = pytest.mark.django_db
13 13

  
14 14

  
15
@pytest.fixture
16
def agenda_with_restrictions(manager_user):
17
    agenda = Agenda(label='Foo Bar')
18
    agenda.view_role = manager_user.groups.all()[0]
19
    agenda.save()
20
    return agenda
21

  
22

  
23 15
def test_export_site(settings, freezer, app, admin_user):
24 16
    freezer.move_to('2020-06-15')
25 17
    login(app)
......
56 48
    assert 'pricing_models' not in site_json
57 49

  
58 50

  
59
@pytest.mark.xfail(reason='/manage/ limited to admin')
60
def test_list_pricings_as_manager(app, manager_user, agenda_with_restrictions):
61
    app = login(app, username='manager', password='manager')
62
    app.get('/manage/pricing/', status=403)
63

  
64
    resp = app.get('/manage/')
65
    assert 'Pricing' not in resp.text
66

  
67

  
68 51
def test_add_pricing(settings, app, admin_user):
69 52
    app = login(app)
70 53
    resp = app.get('/manage/')
......
78 61
    assert pricing.slug == 'pricing-model-for-lunch'
79 62

  
80 63

  
81
@pytest.mark.xfail(reason='/manage/ limited to admin')
82
def test_add_pricing_as_manager(app, manager_user):
83
    app = login(app, username='manager', password='manager')
84
    app.get('/manage/pricing/add/', status=403)
85

  
86

  
87 64
def test_detail_pricing(app, admin_user):
88 65
    pricing = Pricing.objects.create(label='Model')
89 66

  
......
94 71
    assert '/manage/pricing/%s/delete/' % pricing.pk in resp
95 72

  
96 73

  
97
@pytest.mark.xfail(reason='/manage/ limited to admin')
98
def test_detail_pricing_as_manager(app, manager_user):
99
    pricing = Pricing.objects.create(label='Model')
100

  
101
    app = login(app, username='manager', password='manager')
102
    app.get('/manage/pricing/%s/' % pricing.pk, status=403)
103

  
104

  
105 74
def test_edit_pricing(app, admin_user):
106 75
    pricing = Pricing.objects.create(label='Model 1')
107 76
    pricing2 = Pricing.objects.create(label='Model 2')
......
122 91
    assert pricing.slug == 'foo-bar'
123 92

  
124 93

  
125
@pytest.mark.xfail(reason='/manage/ limited to admin')
126
def test_edit_pricing_as_manager(app, manager_user):
127
    pricing = Pricing.objects.create(label='Model')
128

  
129
    app = login(app, username='manager', password='manager')
130
    app.get('/manage/pricing/%s/edit/' % pricing.pk, status=403)
131

  
132

  
133 94
def test_delete_pricing(app, admin_user):
134 95
    pricing = Pricing.objects.create(label='Model')
135 96

  
......
141 102
    assert Pricing.objects.exists() is False
142 103

  
143 104

  
144
@pytest.mark.xfail(reason='/manage/ limited to admin')
145
def test_delete_pricing_as_manager(app, manager_user):
146
    pricing = Pricing.objects.create(label='Model')
147

  
148
    app = login(app, username='manager', password='manager')
149
    app.get('/manage/pricing/%s/delete/' % pricing.pk, status=403)
150

  
151

  
152 105
def test_duplicate_pricing(app, admin_user):
153 106
    pricing = Pricing.objects.create(label='Model')
154 107
    assert Pricing.objects.count() == 1
......
172 125
    assert 'hop' in resp.text
173 126

  
174 127

  
175
@pytest.mark.xfail(reason='/manage/ limited to admin')
176
def test_duplicate_pricing_as_manager(app, manager_user):
177
    pricing = Pricing.objects.create(label='Model')
178

  
179
    app = login(app, username='manager', password='manager')
180
    app.get('/manage/pricing/%s/duplicate/' % pricing.pk, status=403)
181

  
182

  
183 128
@pytest.mark.freeze_time('2021-07-08')
184 129
def test_import_pricing(app, admin_user):
185 130
    pricing = Pricing.objects.create(label='Model')
......
291 236
    assert '<i>foo</i>' in resp
292 237

  
293 238

  
294
@pytest.mark.xfail(reason='/manage/ limited to admin')
295
def test_pricing_edit_extra_variables_as_manager(app, manager_user):
296
    pricing = Pricing.objects.create(label='Model')
297

  
298
    app = login(app, username='manager', password='manager')
299
    app.get('/manage/pricing/%s/variable/' % pricing.pk, status=403)
300

  
301

  
302 239
def test_pricing_add_category(app, admin_user):
303 240
    pricing = Pricing.objects.create(label='Model')
304 241
    category1 = CriteriaCategory.objects.create(label='Cat 1')
......
356 293
    app.get('/manage/pricing/%s/category/add/' % pricing.pk, status=404)
357 294

  
358 295

  
359
@pytest.mark.xfail(reason='/manage/ limited to admin')
360
def test_pricing_add_category_as_manager(app, manager_user):
361
    pricing = Pricing.objects.create(label='Model')
362

  
363
    app = login(app, username='manager', password='manager')
364
    app.get('/manage/pricing/%s/category/add/' % pricing.pk, status=403)
365

  
366

  
367 296
def test_pricing_edit_category(app, admin_user):
368 297
    category1 = CriteriaCategory.objects.create(label='Cat 1')
369 298
    criteria1 = Criteria.objects.create(label='Crit 1', category=category1)
......
406 335
    assert list(pricing.criterias.order_by('pk')) == [criteria1, criteria4, criteria5]
407 336

  
408 337

  
409
@pytest.mark.xfail(reason='/manage/ limited to admin')
410
def test_pricing_edit_category_as_manager(app, manager_user):
411
    pricing = Pricing.objects.create(label='Model')
412
    category = CriteriaCategory.objects.create(label='Cat')
413
    pricing.categories.add(category, through_defaults={'order': 1})
414

  
415
    app = login(app, username='manager', password='manager')
416
    app.get('/manage/pricing/%s/category/%s/edit/' % (pricing.pk, category.pk), status=403)
417

  
418

  
419 338
def test_pricing_delete_category(app, admin_user):
420 339
    category1 = CriteriaCategory.objects.create(label='Cat 1')
421 340
    criteria1 = Criteria.objects.create(label='Crit 1', category=category1)
......
441 360
    app.get('/manage/pricing/%s/category/%s/delete/' % (pricing.pk, 0), status=404)
442 361

  
443 362

  
444
@pytest.mark.xfail(reason='/manage/ limited to admin')
445
def test_pricing_delete_category_as_manager(app, manager_user):
446
    pricing = Pricing.objects.create(label='Model')
447
    category = CriteriaCategory.objects.create(label='Cat')
448

  
449
    app = login(app, username='manager', password='manager')
450
    app.get('/manage/pricing/%s/category/%s/delete/' % (pricing.pk, category.pk), status=403)
451

  
452

  
453 363
def test_pricing_reorder_categories(app, admin_user):
454 364
    category1 = CriteriaCategory.objects.create(label='Cat 1')
455 365
    category2 = CriteriaCategory.objects.create(label='Cat 2')
......
515 425
    ]
516 426

  
517 427

  
518
@pytest.mark.xfail(reason='/manage/ limited to admin')
519
def test_pricing_reorder_categories_as_manager(app, manager_user):
520
    pricing = Pricing.objects.create(label='Model')
521

  
522
    app = login(app, username='manager', password='manager')
523
    app.get('/manage/pricing/%s/order/' % (pricing.pk), status=403)
524

  
525

  
526
@pytest.mark.xfail(reason='/manage/ limited to admin')
527
def test_list_criterias_as_manager(app, manager_user):
528
    app = login(app, username='manager', password='manager')
529
    app.get('/manage/pricing/criterias/', status=403)
530

  
531

  
532 428
def test_add_category(settings, app, admin_user):
533 429
    app = login(app)
534 430
    resp = app.get('/manage/')
......
543 439
    assert category.slug == 'qf'
544 440

  
545 441

  
546
@pytest.mark.xfail(reason='/manage/ limited to admin')
547
def test_add_category_as_manager(app, manager_user):
548
    app = login(app, username='manager', password='manager')
549
    app.get('/manage/pricing/criteria/category/add/', status=403)
550

  
551

  
552 442
def test_edit_category(app, admin_user):
553 443
    category = CriteriaCategory.objects.create(label='QF')
554 444
    category2 = CriteriaCategory.objects.create(label='Domicile')
......
569 459
    assert category.slug == 'baz2'
570 460

  
571 461

  
572
@pytest.mark.xfail(reason='/manage/ limited to admin')
573
def test_edit_category_as_manager(app, manager_user):
574
    category = CriteriaCategory.objects.create(label='Foo bar')
575

  
576
    app = login(app, username='manager', password='manager')
577
    app.get('/manage/pricing/criteria/category/%s/edit/' % category.pk, status=403)
578

  
579

  
580 462
def test_delete_category(app, admin_user):
581 463
    category = CriteriaCategory.objects.create(label='QF')
582 464
    Criteria.objects.create(label='QF 1', category=category)
......
590 472
    assert Criteria.objects.exists() is False
591 473

  
592 474

  
593
@pytest.mark.xfail(reason='/manage/ limited to admin')
594
def test_delete_category_as_manager(app, manager_user):
595
    category = CriteriaCategory.objects.create(label='Foo bar')
596

  
597
    app = login(app, username='manager', password='manager')
598
    app.get('/manage/pricing/criteria/category/%s/delete/' % category.pk, status=403)
599

  
600

  
601 475
def test_add_criteria(app, admin_user):
602 476
    category = CriteriaCategory.objects.create(label='QF')
603 477

  
......
632 506
    assert criteria.order == 2
633 507

  
634 508

  
635
@pytest.mark.xfail(reason='/manage/ limited to admin')
636
def test_add_criteria_as_manager(app, manager_user):
637
    category = CriteriaCategory.objects.create(label='Foo bar')
638

  
639
    app = login(app, username='manager', password='manager')
640
    app.get('/manage/pricing/criteria/category/%s/add/' % category.pk, status=403)
641

  
642

  
643 509
def test_edit_criteria(app, admin_user):
644 510
    category = CriteriaCategory.objects.create(label='QF')
645 511
    criteria = Criteria.objects.create(label='QF 1', category=category)
......
667 533
    assert criteria.condition == 'qf <= 1'
668 534

  
669 535

  
670
@pytest.mark.xfail(reason='/manage/ limited to admin')
671
def test_edit_criteria_as_manager(app, manager_user):
672
    category = CriteriaCategory.objects.create(label='QF')
673
    criteria = Criteria.objects.create(label='QF 1', category=category)
674

  
675
    app = login(app, username='manager', password='manager')
676
    app.get('/manage/pricing/criteria/category/%s/%s/edit/' % (category.pk, criteria.pk), status=403)
677

  
678

  
679 536
def test_delete_criteria(app, admin_user):
680 537
    category = CriteriaCategory.objects.create(label='QF')
681 538
    criteria = Criteria.objects.create(label='QF 1', category=category)
......
689 546
    assert Criteria.objects.exists() is False
690 547

  
691 548

  
692
@pytest.mark.xfail(reason='/manage/ limited to admin')
693
def test_delete_criteria_as_manager(app, manager_user):
694
    category = CriteriaCategory.objects.create(label='QF')
695
    criteria = Criteria.objects.create(label='QF 1', category=category)
696

  
697
    app = login(app, username='manager', password='manager')
698
    app.get('/manage/pricing/criteria/category/%s/%s/delete/' % (category.pk, criteria.pk), status=403)
699

  
700

  
701 549
def test_reorder_criterias(app, admin_user):
702 550
    category = CriteriaCategory.objects.create(label='QF')
703 551
    criteria1 = Criteria.objects.create(label='QF 1', category=category)
......
757 605
    assert list(category.criterias.values_list('order', flat=True).order_by('order')) == [1, 2, 3, 4]
758 606

  
759 607

  
760
@pytest.mark.xfail(reason='/manage/ limited to admin')
761
def test_reorder_criterias_as_manager(app, manager_user):
762
    category = CriteriaCategory.objects.create(label='QF')
763

  
764
    app = login(app, username='manager', password='manager')
765
    app.get('/manage/pricing/criteria/category/%s/order/' % (category.pk), status=403)
766

  
767

  
768 608
@pytest.mark.freeze_time('2021-07-08')
769 609
def test_import_criteria_category(app, admin_user):
770 610
    category = CriteriaCategory.objects.create(label='Foo bar')
......
883 723
    assert agenda_pricing.date_end == datetime.date(2023, 9, 1)
884 724

  
885 725

  
886
@pytest.mark.xfail(reason='/manage/ limited to admin')
887
def test_add_agenda_pricing_as_manager(app, manager_user, agenda_with_restrictions):
888
    app = login(app, username='manager', password='manager')
889
    app.get('/manage/pricing/agenda/%s/pricing/add/' % agenda_with_restrictions.pk, status=403)
890

  
891

  
892 726
def test_edit_agenda_pricing(app, admin_user):
893 727
    agenda = Agenda.objects.create(label='Foo Bar')
894 728
    pricing = Pricing.objects.create(label='Model')
......
940 774
    app.get('/manage/pricing/agenda/%s/pricing/%s/edit/' % (agenda.pk, 0), status=404)
941 775

  
942 776

  
943
@pytest.mark.xfail(reason='/manage/ limited to admin')
944
def test_edit_agenda_pricing_as_manager(app, manager_user, agenda_with_restrictions):
945
    pricing = Pricing.objects.create(label='Model')
946
    agenda_pricing = AgendaPricing.objects.create(
947
        agenda=agenda_with_restrictions,
948
        pricing=pricing,
949
        date_start=datetime.date(year=2021, month=9, day=1),
950
        date_end=datetime.date(year=2021, month=10, day=1),
951
    )
952
    app = login(app, username='manager', password='manager')
953
    app.get(
954
        '/manage/pricing/agenda/%s/pricing/%s/edit/' % (agenda_with_restrictions.pk, agenda_pricing.pk),
955
        status=403,
956
    )
957

  
958
    resp = app.get('/manage/pricing/agenda/%s/pricing/%s/' % (agenda_with_restrictions.pk, agenda_pricing.pk))
959
    assert (
960
        '/manage/pricing/agenda/%s/pricing/%s/edit/' % (agenda_with_restrictions.pk, agenda_pricing.pk)
961
        not in resp
962
    )
963

  
964

  
965
@pytest.mark.xfail(reason='/manage/ limited to admin')
966
def test_delete_agenda_pricing_as_manager(app, manager_user, agenda_with_restrictions):
967
    pricing = Pricing.objects.create(label='Model')
968
    agenda_pricing = AgendaPricing.objects.create(
969
        agenda=agenda_with_restrictions,
970
        pricing=pricing,
971
        date_start=datetime.date(year=2021, month=9, day=1),
972
        date_end=datetime.date(year=2021, month=10, day=1),
973
    )
974
    app = login(app, username='manager', password='manager')
975
    app.get(
976
        '/manage/pricing/agenda/%s/pricing/%s/delete/' % (agenda_with_restrictions.pk, agenda_pricing.pk),
977
        status=403,
978
    )
979

  
980
    resp = app.get('/manage/pricing/agenda/%s/pricing/%s/' % (agenda_with_restrictions.pk, agenda_pricing.pk))
981
    assert (
982
        '/manage/pricing/agenda/%s/pricing/%s/delete/' % (agenda_with_restrictions.pk, agenda_pricing.pk)
983
        not in resp
984
    )
985

  
986

  
987 777
def test_delete_agenda_pricing(app, admin_user):
988 778
    agenda = Agenda.objects.create(label='Foo Bar')
989 779
    pricing = Pricing.objects.create(label='Model')
......
1600 1390

  
1601 1391
    app = login(app)
1602 1392
    app.get('/manage/pricing/agenda/%s/pricing/%s/matrix/edit/' % (agenda.pk, agenda_pricing.pk), status=404)
1603

  
1604

  
1605
@pytest.mark.xfail(reason='/manage/ limited to admin')
1606
def test_edit_agenda_pricing_matrix_as_manager(app, manager_user, agenda_with_restrictions):
1607
    category1 = CriteriaCategory.objects.create(label='Cat 1')
1608
    Criteria.objects.create(label='Crit 1-1', slug='crit-1-1', category=category1, order=1)
1609
    Criteria.objects.create(label='Crit 1-2', slug='crit-1-2', category=category1, order=2)
1610
    category2 = CriteriaCategory.objects.create(label='Cat 2')
1611
    category3 = CriteriaCategory.objects.create(label='Cat 3')
1612
    pricing = Pricing.objects.create(label='Model')
1613
    agenda_pricing = AgendaPricing.objects.create(
1614
        agenda=agenda_with_restrictions,
1615
        pricing=pricing,
1616
        date_start=datetime.date(year=2021, month=9, day=1),
1617
        date_end=datetime.date(year=2021, month=10, day=1),
1618
    )
1619
    pricing.categories.add(category1, through_defaults={'order': 1})
1620
    pricing.criterias.set(Criteria.objects.all())
1621

  
1622
    def check():
1623
        resp = app.get(
1624
            '/manage/pricing/agenda/%s/pricing/%s/' % (agenda_with_restrictions.pk, agenda_pricing.pk)
1625
        )
1626
        assert (
1627
            '/manage/pricing/agenda/%s/pricing/%s/matrix/edit/'
1628
            % (agenda_with_restrictions.pk, agenda_pricing.pk)
1629
            not in resp
1630
        )
1631
        for slug in ['crit-1-1', 'crit-1-2']:
1632
            assert (
1633
                '/manage/pricing/agenda/%s/pricing/%s/matrix/%s/edit/'
1634
                % (agenda_with_restrictions.pk, agenda_pricing.pk, slug)
1635
                not in resp
1636
            )
1637

  
1638
    app = login(app, username='manager', password='manager')
1639
    app.get(
1640
        '/manage/pricing/agenda/%s/pricing/%s/matrix/edit/'
1641
        % (agenda_with_restrictions.pk, agenda_pricing.pk),
1642
        status=403,
1643
    )
1644
    check()
1645

  
1646
    pricing.categories.add(category2, through_defaults={'order': 2})
1647
    app.get(
1648
        '/manage/pricing/agenda/%s/pricing/%s/matrix/edit/'
1649
        % (agenda_with_restrictions.pk, agenda_pricing.pk),
1650
        status=403,
1651
    )
1652
    check()
1653

  
1654
    pricing.categories.add(category3, through_defaults={'order': 3})
1655
    app.get(
1656
        '/manage/pricing/agenda/%s/pricing/%s/matrix/crit-1-1/edit/'
1657
        % (agenda_with_restrictions.pk, agenda_pricing.pk),
1658
        status=403,
1659
    )
1660
    app.get(
1661
        '/manage/pricing/agenda/%s/pricing/%s/matrix/crit-1-2/edit/'
1662
        % (agenda_with_restrictions.pk, agenda_pricing.pk),
1663
        status=403,
1664
    )
1665
    check()
1666
-