Skip to content
Snippets Groups Projects
Commit b5b6be9e authored by Calum Mackervoy's avatar Calum Mackervoy Committed by Jean-Baptiste
Browse files

update: fixtures for performance unit tests

parent d10cfa18
No related branches found
No related tags found
1 merge request!161Performance
This diff is collapsed.
import uuid
import json
import sys
import random
from pathlib import Path
from copy import deepcopy
'''
A script which generates and outputs random test data, into a file used by the performance unit tests
'''
count = int(sys.argv[1])
fixture = list()
user_template = {
'model': 'tests.user',
'pk': 0,
'fields': {
'username': 'john',
'email': 'jlennon@c.coop',
'password':'glass onion'
}
}
project_template = {
'model': 'tests.project',
'pk': 0,
'fields': {
'description': 'Test'
}
}
def generate_user(i):
user = deepcopy(user_template)
user['pk'] = i
user['fields']['username'] = str(uuid.uuid4())
user['fields']['email'] = user['fields']['username'] + "@c.coop"
return user
def generate_project(i):
project = deepcopy(project_template)
project['pk'] = i
project['fields']['team'] = list()
# append random number of users, max 10 for a single project
for j in range(random.randint(1, 10)):
project['fields']['team'].append(random.randint(1, count-1))
return project
# create N users
for i in range(count):
user = generate_user(i)
fixture.append(user)
# create N projects
for i in range(count):
project = generate_project(i)
fixture.append(project)
with open(Path(__file__).parent / "../fixtures/test.json", 'w') as output:
json.dump(fixture, output)
print(str(count))
from rest_framework.test import APIClient, APITestCase
from djangoldp.tests.models import User, Project
class TestsInbox(APITestCase):
fixtures = ['test.json',]
def test_populated(self):
self.assertEqual(User.objects.count(), 100)
self.assertEqual(Project.objects.count(), 100)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment