Тесты параллелизма в Django

Только начал изучать Django в прошлом месяце. Мне нужна помощь в проведении тестов на параллельность в Django, поэтому я попытался написать код, который предотвратит проблемы, возникающие из-за отсутствия параллельности, но я не знаю, как проверить и протестировать код, чтобы убедиться, что он соответствует моим ожиданиям. Я хочу отправить несколько запросов одновременно, чтобы проверить, работает ли код так, как ожидается.

Целевая функция в файле views.py

def buy_animal(request):
    context = {}
    
    if request.method == 'POST':
        form = buys_animal(request.POST)
        if form.is_valid() == True or form.is_valid() == False:
            #return HttpResponse('asdasd')
            nm = request.POST['an_name']

            b = Animal.objects.filter(an_name = nm)
            #return HttpResponse("yo ")
            #nm = request.POST['an_name']
        
            qt = int(request.POST['qty'])
            if b.count() <= 0:
                return HttpResponse(str(b.count()) + " Sorry we're out of animals")
            else:
                try: 
                    with transaction.atomic():
                            
                        b.select_for_update()
                        b = b[0]
                        #b.an_name = 'asd'
                        #b.save()
                       
                        with transaction.atomic():
                            Quality.objects.filter( animal = Animal.objects.filter(an_name = 'ringneck')[0] ).select_for_update()
                            c = Quality.objects.filter( animal = Animal.objects.filter(an_name = 'ringneck')[0] )[0]
                            c.rating = 'niece'
                            c.save()
                 
                except:
                    return HttpResponse('lock in use')           
                 
                if b.qty - qt < 0:
                    return HttpResponse("Sorry we don't have enough animals") 
                else: 
                    b.qty = b.qty - qt
                    b.save()
                    a = Buy_animal( an_name = nm, qty = qt, 
                    buyer = MyUser.objects.filter(username = request.user.username)[0] )
                    a.save()
                       
                       
                    return HttpResponse('animal bought')     
        else :
            
            form = buys_animal()
            context = {}
            context = {'form' : form}   

            return render(request, "buy_animal_form.html", context) 
    else :
        
        form = buys_animal()
        context = {}
        context = {'form' : form}   

        return render(request, "buy_animal_form.html", context)

Мой код models.py можно найти в репозитории ниже https://bitbucket.org/mab_786/django_models_code/src/master/models.py
`

Прошу не обращать внимания на любые глупые ошибки с моей стороны, так как я только начал работать с django. Заранее спасибо. Я был бы очень признателен, если бы кто-нибудь поделился кодом tests.py для проверки такой ситуации. Я написал этот код не как часть какого-либо проекта, а для того, чтобы прояснить свои понятия

Вернуться на верх