Revision 770dba12 snf-astakos-app/astakos/test/views.py

b/snf-astakos-app/astakos/test/views.py
33 33

  
34 34
from datetime import datetime, timedelta
35 35

  
36
from astakos.im.models import AstakosUser
36
from django.core.exceptions import PermissionDenied
37
from astakos.im.models import AstakosUser, ProjectApplication
37 38
from astakos.im.functions import (join_project, leave_project,
38
                                  submit_application, approve_application)
39
                                  submit_application, approve_application,
40
                                  get_user_by_id, qh_add_pending_app)
39 41
from snf_django.lib.db.transaction import commit_on_success_strict
40 42

  
43

  
41 44
@commit_on_success_strict()
42
def join(proj_id, user_id, ctx=None):
43
    join_project(proj_id, user_id)
45
def join(proj_id, user_id):
46
    join_project(proj_id, get_user_by_id(user_id))
47

  
44 48

  
45 49
@commit_on_success_strict()
46
def leave(proj_id, user_id, ctx=None):
47
    leave_project(proj_id, user_id)
50
def leave(proj_id, user_id):
51
    leave_project(proj_id, get_user_by_id(user_id))
52

  
48 53

  
49 54
@commit_on_success_strict()
50
def submit(name, user_id, prec, ctx=None):
55
def submit(name, user_id, prec):
51 56
    try:
52 57
        owner = AstakosUser.objects.get(id=user_id)
53 58
    except AstakosUser.DoesNotExist:
54 59
        raise AttributeError('user does not exist')
55 60

  
56
    resource_policies = [{'service': 'cyclades',
57
                          'resource': 'network.private',
58
                          'uplimit': 5}]
61
    precursor = (ProjectApplication.objects.get(id=prec)
62
                 if prec is not None
63
                 else None)
64

  
65
    ok, limit = qh_add_pending_app(owner, precursor=precursor, dry_run=True)
66
    if not ok:
67
        raise PermissionDenied('Limit %s reached', limit)
68

  
69
    resource_policies = [('cyclades.network.private', 5)]
59 70
    data = {'owner': owner,
60 71
            'name': name,
61
            'precursor_application': prec,
72
            'precursor_id': prec,
62 73
            'end_date': datetime.now() + timedelta(days=1),
63 74
            'member_join_policy': 1,
64 75
            'member_leave_policy': 1,
65 76
            'resource_policies': resource_policies,
77
            'request_user': owner
66 78
            }
67 79

  
68
    app = submit_application(data, request_user=owner)
80
    app = submit_application(**data)
69 81
    return app.id
70 82

  
83

  
71 84
@commit_on_success_strict()
72
def approve(app_id, ctx=None):
85
def approve(app_id):
73 86
    approve_application(app_id)

Also available in: Unified diff