Skip to content

Commit

Permalink
refactor tests using self.assertNumQueries
Browse files Browse the repository at this point in the history
  • Loading branch information
RuthShryock committed Aug 29, 2024
1 parent 216fa68 commit adeda44
Showing 1 changed file with 4 additions and 16 deletions.
20 changes: 4 additions & 16 deletions kpi/tests/api/v2/test_api_asset_permission_assignment.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
from copy import deepcopy

from django.contrib.auth.models import Permission
from django.db import connection
from django.test.utils import CaptureQueriesContext
from django.urls import reverse
from rest_framework import status

Expand Down Expand Up @@ -945,20 +943,15 @@ def test_bulk_assign_perm_reduces_queries(self):
permissions = [PERM_VIEW_ASSET, PERM_CHANGE_ASSET]

# Assign permissions one by one
with CaptureQueriesContext(connection) as old_context:
with self.assertNumQueries(36):
for user in [self.someuser, self.anotheruser]:
for perm in permissions:
self.asset.assign_perm(user, perm)
old_method_query_count = len(old_context.captured_queries)

# Bulk assign permissions
with CaptureQueriesContext(connection) as new_context:
with self.assertNumQueries(12):
for user in [self.someuser, self.anotheruser]:
self.asset.assign_perm(user, permissions)
new_method_query_count = len(new_context.captured_queries)

# Ensure the new method reduces the number of queries
self.assertTrue(new_method_query_count < old_method_query_count)

def test_bulk_remove_perm_reduces_queries(self):
permissions = [
Expand All @@ -971,17 +964,12 @@ def test_bulk_remove_perm_reduces_queries(self):
self.asset.assign_perm(user, permissions)

# Remove permissions one by one
with CaptureQueriesContext(connection) as old_context:
with self.assertNumQueries(56):
for user in [self.someuser, self.anotheruser]:
for perm in permissions:
self.asset.remove_perm(user, perm)
old_method_query_count = len(old_context.captured_queries)

# Bulk remove permissions
with CaptureQueriesContext(connection) as new_context:
with self.assertNumQueries(42):
for user in [self.someuser, self.anotheruser]:
self.asset.remove_perm(user, permissions)
new_method_query_count = len(new_context.captured_queries)

# Ensure the new method reduces the number of queries
self.assertTrue(new_method_query_count < old_method_query_count)

0 comments on commit adeda44

Please sign in to comment.