def empty_temp_db(): global n_experiments n_experiments = 0 # create a temp database for testing with tempfile.TemporaryDirectory() as tmpdirname: qc.config["core"]["db_location"] = os.path.join(tmpdirname, 'temp.db') if os.environ.get('QCODES_SQL_DEBUG'): qc.config["core"]["db_debug"] = True else: qc.config["core"]["db_debug"] = False initialise_database() yield
def test_initialise_database_at_for_existing_db(tmp_path): # Define DB location db_location = str(tmp_path / 'temp.db') assert not os.path.exists(db_location) # Create DB file qc.config["core"]["db_location"] = db_location initialise_database() # Check if it has been created correctly assert os.path.exists(db_location) assert qc.config["core"]["db_location"] == db_location # Call function under test initialise_or_create_database_at(db_location) # Check if the DB is still correct assert os.path.exists(db_location) assert qc.config["core"]["db_location"] == db_location
def test_initialise_database_at_for_existing_db(): with tempfile.TemporaryDirectory() as tmpdirname: # Define DB location db_location = os.path.join(tmpdirname, 'temp.db') assert not os.path.exists(db_location) # Create DB file qc.config["core"]["db_location"] = db_location initialise_database() # Check if it has been created correctly assert os.path.exists(db_location) assert qc.config["core"]["db_location"] == db_location # Call function under test initialise_or_create_database_at(db_location) # Check if the DB is still correct assert os.path.exists(db_location) assert qc.config["core"]["db_location"] == db_location
def empty_temp_db(tmp_path): global n_experiments n_experiments = 0 # create a temp database for testing try: qc.config["core"]["db_location"] = \ str(tmp_path / 'temp.db') if os.environ.get('QCODES_SQL_DEBUG'): qc.config["core"]["db_debug"] = True else: qc.config["core"]["db_debug"] = False initialise_database() yield finally: # there is a very real chance that the tests will leave open # connections to the database. These will have gone out of scope at # this stage but a gc collection may not have run. The gc # collection ensures that all connections belonging to now out of # scope objects will be closed gc.collect()
def setup(self, bench_param): # Init DB self.tmpdir = tempfile.mkdtemp() qcodes.config["core"]["db_location"] = os.path.join(self.tmpdir, 'temp.db') qcodes.config["core"]["db_debug"] = False initialise_database() # Create experiment self.experiment = new_experiment("test-experiment", sample_name="test-sample") # Create measurement meas = Measurement(self.experiment) x1 = ManualParameter('x1') x2 = ManualParameter('x2') x3 = ManualParameter('x3') y1 = ManualParameter('y1') y2 = ManualParameter('y2') meas.register_parameter(x1, paramtype=bench_param['paramtype']) meas.register_parameter(x2, paramtype=bench_param['paramtype']) meas.register_parameter(x3, paramtype=bench_param['paramtype']) meas.register_parameter(y1, setpoints=[x1, x2, x3], paramtype=bench_param['paramtype']) meas.register_parameter(y2, setpoints=[x1, x2, x3], paramtype=bench_param['paramtype']) self.parameters = [x1, x2, x3, y1, y2] # Create the Runner context manager self.runner = meas.run() # Enter Runner and create DataSaver self.datasaver = self.runner.__enter__() # Create values for parameters for _ in range(len(self.parameters)): self.values.append(np.random.rand(bench_param['n_values']))