webinventory_tests/trials/my_test.py
2018-09-10 22:55:13 +03:00

73 lines
2.5 KiB
Python

from __future__ import unicode_literals
from django.core.urlresolvers import reverse
from django.test import TestCase
from api.models import Inventory, Group
from django.contrib.auth.models import User
import time
from django.db import transaction
class ProductivityTest(TestCase):
fixtures = ["tests/selenium/user.json"]
def test_massive_creation_base(self):
start = time.time()
user = User.objects.all()[0]
inventory = Inventory(user=user, inventory='inv')
inventory.save()
for i in range(20000):
group = Group(inventory=inventory, group="group_{}".format(i))
group.save()
time_is = time.time() - start
print("base: ", time_is)
# @transaction.atomic
def test_transaction(self):
start = time.time()
user = User.objects.all()[0]
inventory = Inventory(user=user, inventory='inv')
inventory.save()
with transaction.atomic():
for i in range(20000):
group = Group(inventory=inventory, group="group_{}".format(i))
group.clean_fields(exclude=['id', 'inventory'])
# group.setattr(f.attname, f.clean(raw_value, self))
# for i in group._meta.fields:
# print(i.name)
group.save()
time_is = time.time() - start
print("transaction_decorator: ", time_is)
# @transaction.atomic
def test_bulk(self):
start = time.time()
user = User.objects.all()[0]
inventory = Inventory(user=user, inventory='inv')
inventory.save()
group_list = []
# Group.objects.bulk_create([
# Group(inventory=inventory, group="group_{}".format(group)) for group in range(20000)
# if Group(inventory=inventory, group="group_{}".format(group)).clean_fields(exclude=['id', 'inventory']) is None
# ])
for i in range(20000):
group = Group(inventory=inventory, group="group_{}".format(i))
group.clean_fields(exclude=['id', 'inventory'])
# group.save()
# group = Group.objects.get(inventory=inventory, group="group_{}".format(i))
group_list.append(group)
Group.objects.bulk_create(group_list)
# for i in range(20000):
# group = Group.objects.get(inventory=inventory, group="group_{}".format(i))
# group.save()
time_is = time.time() - start
print("bulk_decorator: ", time_is)