1- import datetime
21import random
3- import statistics
42import time
5- from decimal import Decimal
6- from typing import Any
73import unittest
8- import pandas as pd
9- from tests .settings import INSTANCE_ID , DATABASE_NAME
4+ from typing import Any
105
6+ import pandas as pd
7+ import pytest
118from django .db import connection
12- from django .test import TransactionTestCase
139from google .api_core .exceptions import Aborted
1410from google .cloud import spanner_dbapi
1511from google .cloud .spanner_v1 import Client , KeySet
16- from scipy .stats import sem
17-
18- from tests .system .django_spanner .utils import (
19- setup_database ,
20- setup_instance ,
21- teardown_database ,
22- teardown_instance ,
23- )
24- import pytest
25-
2612
2713from tests .performance .django_spanner .models import Author
14+ from tests .settings import DATABASE_NAME , INSTANCE_ID
15+ from tests .system .django_spanner .utils import setup_database , setup_instance
2816
2917
3018def measure_execution_time (function ):
@@ -77,7 +65,6 @@ def insert_many_rows(transaction, many_rows):
7765
7866class DjangoBenchmarkTest ():
7967 def __init__ (self ):
80- setup_database ()
8168 with connection .schema_editor () as editor :
8269 # Create the tables
8370 editor .create_model (Author )
@@ -95,7 +82,6 @@ def _cleanup(self):
9582 with connection .schema_editor () as editor :
9683 # delete the table
9784 editor .delete_model (Author )
98- teardown_database ()
9985 # teardown_instance()
10086
10187 @measure_execution_time
@@ -152,7 +138,6 @@ def run(self):
152138class SpannerBenchmarkTest ():
153139 """The original Spanner performace testing class."""
154140 def __init__ (self ):
155- setup_database ()
156141 self ._create_table ()
157142 self ._one_row = (
158143 1 ,
@@ -249,11 +234,12 @@ def run(self):
249234 self ._cleanup ()
250235 return measures
251236
252- @pytest .mark .django_db (transaction = True )
237+ @pytest .mark .django_db ()
253238class BenchmarkTest (unittest .TestCase ):
254239
255240 def test_run (self ):
256241 setup_instance ()
242+ setup_database ()
257243 django_obj = pd .DataFrame (columns = ['insert_one_row_with_fetch_after' , 'read_one_row' , 'insert_many_rows' , 'select_many_rows' ,
258244 'insert_many_rows_with_mutations' ])
259245 spanner_obj = pd .DataFrame (columns = ['insert_one_row_with_fetch_after' , 'read_one_row' , 'insert_many_rows' , 'select_many_rows' ,
@@ -263,13 +249,12 @@ def test_run(self):
263249 django_obj = django_obj .append (DjangoBenchmarkTest ().run (), ignore_index = True )
264250 spanner_obj = spanner_obj .append (SpannerBenchmarkTest ().run (), ignore_index = True )
265251
266- django_avg = django_obj .mean (axis = 0 )
267- spanner_avg = spanner_obj .mean (axis = 0 )
268- django_std = django_obj .std (axis = 0 )
269- spanner_std = spanner_obj .std (axis = 0 )
270- django_err = django_obj .sem (axis = 0 )
271- spanner_err = spanner_obj .sem (axis = 0 )
272- print ("Django Average: " , django_avg , "\n Spanner Average: " , spanner_avg , "\n Django Standard Deviation: " , django_std ,
273- "\n Spanner Standard Deviation: " , spanner_std , "\n Django Error: " , django_err , "\n Spanner Error: " , spanner_err , sep = '\n ' )
274-
275-
252+ avg = pd .concat ([django_obj .mean (axis = 0 ), spanner_obj .mean (axis = 0 )], axis = 1 )
253+ avg .columns = ['Django' ,'Spanner' ]
254+ std = pd .concat ([django_obj .std (axis = 0 ), spanner_obj .std (axis = 0 )], axis = 1 )
255+ std .columns = ['Django' ,'Spanner' ]
256+ err = pd .concat ([django_obj .sem (axis = 0 ), spanner_obj .sem (axis = 0 )], axis = 1 )
257+ err .columns = ['Django' ,'Spanner' ]
258+
259+ print ("Average: " , avg , "Standard Deviation: " , std , "Error:" , err , sep = '\n ' )
260+
0 commit comments