CMS 3D CMS Logo

data_formats_tests.py
Go to the documentation of this file.
1 from __future__ import print_function
2 import unittest
3 import sys
4 import datetime
5 import pprint
6 import subprocess
7 import os
8 
9 import CondCore.Utilities.CondDBFW.querying as querying
10 import CondCore.Utilities.CondDBFW.data_sources as data_sources
11 import CondCore.Utilities.CondDBFW.data_formats as data_formats
12 import CondCore.Utilities.CondDBFW.shell as shell
13 import CondCore.Utilities.CondDBFW.models as models
14 
15 prod_connection_string = "frontier://FrontierProd/CMS_CONDITIONS"
16 secrets_source = None
17 
18 class data_formats_tests(unittest.TestCase):
19 
20  def setUp(self):
21  self.connection = querying.connect(prod_connection_string, secrets=secrets_source)
22 
24  tags = self.connection.tag().all(amount=10)
25  list_of_dicts = data_formats._objects_to_dicts(tags)
26  self.assertEqual(list_of_dicts.__class__.__name__, "json_list")
27  for tag in tags:
28  self.assertTrue(isinstance(tag, self.connection.models["tag"]))
29 
31  models_to_test = map(self.connection.model, ["global_tag", "tag", "payload", "iov"])
32  for model in models_to_test:
33  model_name = models.class_name_to_column(model).lower()
34  objects = getattr(self.connection, model_name)().all(amount=5)
35  dicts = data_formats._objects_to_dicts(objects)
36  orm_objects = data_formats._dicts_to_orm_objects(self.connection.model(model_name), dicts)
37  self.assertTrue(dicts != None)
38  for obj in orm_objects:
39  self.assertEqual(models.class_name_to_column(obj.__class__).lower(), model_name)
40  headers = model.headers
41  for header in headers:
42  try:
43  test = getattr(obj, header)
44  header_exists = True
45  except:
46  print("'%s' doesn't exist." % header)
47  header_exists = False
48  self.assertTrue(header_exists)
49 
50  def tearDown(self):
51  self.connection.tear_down()
def _dicts_to_orm_objects(model, data)
def connect(connection_data, mode="r", map_blobs=False, secrets=None, pooling=True)
Definition: querying.py:452
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def class_name_to_column(cls)
Definition: models.py:59
def _objects_to_dicts(data)
Definition: data_formats.py:97