Completed
Push — main ( 998805...9204bb )
by Jochen
03:26
created

ticket()   A

Complexity

Conditions 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nop 2
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
"""
2
:Copyright: 2006-2020 Jochen Kupperschmidt
3
:License: Modified BSD, see LICENSE for details.
4
"""
5
6
import pytest
7
8
from byceps.services.ticketing import (
9
    category_service,
10
    ticket_bundle_service as bundle_service,
11
    ticket_creation_service as creation_service,
12
    ticket_service,
13
)
14
15
from tests.helpers import login_user
16
17
18
@pytest.fixture(scope='package')
19
def ticketing_admin(make_admin):
20
    permission_ids = {
21
        'admin.access',
22
        'ticketing.administrate_seat_occupancy',
23
        'ticketing.checkin',
24
        'ticketing.view',
25
    }
26
    admin = make_admin('Ticketing_Admin', permission_ids)
27
    login_user(admin.id)
28
    return admin
29
30
31
@pytest.fixture(scope='package')
32
def ticket_owner(make_user):
33
    return make_user('Ticket_Owner')
34
35
36
@pytest.fixture(scope='package')
37
def category(party):
38
    category = category_service.create_category(party.id, 'Basic')
39
40
    yield category
41
42
    category_service.delete_category(category.id)
43
44
45
@pytest.fixture(scope='package')
46
def ticket(category, ticket_owner):
47
    ticket = creation_service.create_ticket(category.id, ticket_owner.id)
48
    ticket_id = ticket.id
49
50
    yield ticket
51
52
    ticket_service.delete_ticket(ticket_id)
53
54
55
@pytest.fixture(scope='package')
56
def bundle(category, ticket_owner):
57
    quantity = 4
58
    bundle = bundle_service.create_bundle(
59
        category.id, quantity, ticket_owner.id
60
    )
61
    tickets = bundle.tickets
62
63
    yield bundle
64
65
    for ticket in tickets:
66
        ticket_service.delete_ticket(ticket.id)
67
    bundle_service.delete_bundle(bundle.id)
68