themblem/api/tests/stress.py
2025-03-01 20:40:38 +00:00

48 lines
1.4 KiB
Python

import time
import json
import os
import subprocess
import requests
from threading import Thread
from django.test import TestCase, Client
from django.test import Client
from django.conf import settings
from products.models import *
from django.contrib.auth.models import User
BASE_DIR = os.path.abspath(os.path.dirname(__file__) + "/..")
class StressTest(TestCase):
def setUp(self):
User(is_superuser=True, username="admin", password="testpass").save()
self.token0 = 'tenanttoken0'
t = Tenant(username="tenant0", mobile="12300000000",
password="testpass", token=self.token0)
t.save()
self.tenant = t
self.client = Client()
def test_qr_verify(self):
p = Product.objects.create(name='testprod',
tenant=self.tenant)
b = CodeBatch.objects.create(product=p, code_prefix="")
c = SerialCode.objects.create(batch=b, code='1234441219866726744')
begin = time.time()
for i in range(100):
self.do_qr_verify()
end = time.time()
self.assertLess(end - begin, 1)
def do_qr_verify(self):
img = open(os.path.join(BASE_DIR, "tests/data/qr.png"), 'rb')
r = self.client.post("/api/v1/qr-verify/", {
'username': 'testuser',
'photo': img,
})
self.assertEqual(r.json().get('error'), None)