parent
3f293f2cea
commit
273e514ee3
1 changed files with 126 additions and 0 deletions
@ -0,0 +1,126 @@ |
||||
import django, sys, os |
||||
sys.path.append("..") |
||||
os.environ['DJANGO_SETTINGS_MODULE'] = 'apiserver.settings' |
||||
django.setup() |
||||
|
||||
import random |
||||
import string |
||||
import datetime |
||||
from uuid import uuid4 |
||||
import requests |
||||
from apiserver.api import models |
||||
|
||||
API_URL = 'http://localhost:8002' |
||||
|
||||
if len(sys.argv) == 2: |
||||
token = sys.argv[1] |
||||
else: |
||||
raise('Please provide a login token in the command line') |
||||
|
||||
members = models.Member.objects.all() |
||||
member_ids = list(members.values_list('id', flat=True)) |
||||
courses = models.Course.objects.all() |
||||
course_ids = list(courses.values_list('id', flat=True)) |
||||
|
||||
|
||||
randstr = lambda: str(uuid4()).split('-')[-1] |
||||
|
||||
build_user = lambda: dict( |
||||
first_name='test', |
||||
last_name='tester', |
||||
username=randstr()+'.tester', |
||||
password1='protospace', |
||||
password2='protospace', |
||||
email=randstr()+'@domain.com', |
||||
existing_member='false', |
||||
) |
||||
|
||||
change_member = lambda: dict( |
||||
street_address=randstr(), |
||||
city=randstr(), |
||||
postal_code=randstr(), |
||||
first_name=randstr(), |
||||
) |
||||
|
||||
build_transaction = lambda member_id: dict( |
||||
member_id=member_id, |
||||
date='2020-02-02', |
||||
amount=0, |
||||
account_type='Clearing', |
||||
info_source='DB Edit', |
||||
memo='Test transaction, ignore' |
||||
) |
||||
|
||||
build_card = lambda member_id: dict( |
||||
member_id=member_id, |
||||
card_number=randstr(), |
||||
active_status='card_active', |
||||
notes='qot', |
||||
) |
||||
|
||||
build_search = lambda: dict( |
||||
q=random.choice(string.ascii_lowercase), |
||||
seq=123, |
||||
) |
||||
|
||||
build_session = lambda: dict( |
||||
datetime=datetime.datetime.now(), |
||||
course=random.choice(course_ids), |
||||
cost=0, |
||||
) |
||||
|
||||
def poster(headers, payload, route): |
||||
r = requests.post(API_URL + route, data=payload, headers=headers, timeout=5) |
||||
if r.status_code < 300: |
||||
print(r.text.strip()) |
||||
else: |
||||
print(r.text) |
||||
raise Exception('Bad response code ' + str(r.status_code)) |
||||
|
||||
def patcher(headers, payload, route): |
||||
r = requests.patch(API_URL + route, data=payload, headers=headers, timeout=5) |
||||
if r.status_code < 300: |
||||
print(r.text.strip()) |
||||
else: |
||||
print(r.text) |
||||
raise Exception('Bad response code ' + str(r.status_code)) |
||||
|
||||
|
||||
def register_member(): |
||||
payload = build_user() |
||||
poster({}, payload, '/registration/') |
||||
|
||||
def edit_member(): |
||||
payload = change_member() |
||||
headers = {'Authorization': 'Token ' + token} |
||||
patcher(headers, payload, '/members/'+str(random.choice(member_ids))+'/') |
||||
|
||||
def create_transaction(): |
||||
headers = {'Authorization': 'Token ' + token} |
||||
payload = build_transaction(random.choice(member_ids)) |
||||
poster(headers, payload, '/transactions/') |
||||
|
||||
def create_card(): |
||||
headers = {'Authorization': 'Token ' + token} |
||||
payload = build_card(random.choice(member_ids)) |
||||
poster(headers, payload, '/cards/') |
||||
|
||||
def perform_search(): |
||||
headers = {'Authorization': 'Token ' + token} |
||||
payload = build_search() |
||||
poster(headers, payload, '/search/') |
||||
|
||||
def create_session(): |
||||
headers = {'Authorization': 'Token ' + token} |
||||
payload = build_session() |
||||
poster(headers, payload, '/sessions/') |
||||
|
||||
|
||||
|
||||
while True: |
||||
register_member() |
||||
edit_member() |
||||
perform_search() |
||||
create_transaction() |
||||
create_card() |
||||
create_session() |
Loading…
Reference in new issue