@@ -52,21 +52,47 @@ struct test_fixture {
5252 {
5353 backend = std::make_unique<CcdbDatabase>();
5454 backend->connect (CCDB_ENDPOINT , " " , " " , " " );
55- ILOG (Info, Support) << " *** " << boost::unit_test::framework::current_test_case ().p_name << " ***" << ENDM ;
55+ pid = std::to_string (getpid ());
56+ taskName = " Test/pid" + pid;
57+ ILOG (Info, Support) << " *** " << boost::unit_test::framework::current_test_case ().p_name << " (" << pid
58+ << " ) ***" << ENDM ;
5659 }
5760
5861 ~test_fixture () = default ;
5962
63+ // shorthands to get the paths to the objects and their containing folder
64+ std::string getQoPath (const string& checkName) const
65+ {
66+ return RepoPathUtils::getQoPath (detector, taskName + " /" + checkName);
67+ }
68+ std::string getMoPath (const string& objectName) const
69+ {
70+ return RepoPathUtils::getMoPath (detector, taskName, objectName);
71+ }
72+ std::string getMoFolder (const string& objectName) const
73+ {
74+ string fullMoPath = getMoPath (objectName);
75+ return fullMoPath.substr (0 , fullMoPath.find_last_of (' /' ));
76+ }
77+
6078 std::unique_ptr<CcdbDatabase> backend;
6179 map<string, string> metadata;
80+ std::string pid;
81+ const std::string detector = " TST" ;
82+ std::string taskName;
6283};
6384
64- BOOST_AUTO_TEST_CASE (ccdb_create)
65- {
66- test_fixture f;
67-
68- f.backend ->truncate (" my/task" , " *" );
69- }
85+ struct MyGlobalFixture {
86+ void teardown ()
87+ {
88+ std::unique_ptr<CcdbDatabase> backend = std::make_unique<CcdbDatabase>();
89+ backend->connect (CCDB_ENDPOINT , " " , " " , " " );
90+ // cannot use the test_fixture because we are tearing down
91+ backend->truncate (" qc/TST/MO/Test/pid" + std::to_string (getpid ()), " *" );
92+ backend->truncate (" qc/TST/QO/Test/pid" + std::to_string (getpid ()), " *" );
93+ }
94+ };
95+ BOOST_TEST_GLOBAL_FIXTURE (MyGlobalFixture);
7096
7197long oldTimestamp;
7298
@@ -76,19 +102,19 @@ BOOST_AUTO_TEST_CASE(ccdb_store)
76102
77103 TH1F * h1 = new TH1F (" quarantine" , " asdf" , 100 , 0 , 99 );
78104 h1->FillRandom (" gaus" , 10000 );
79- shared_ptr<MonitorObject> mo1 = make_shared<MonitorObject>(h1, " my/task " , " TST" );
105+ shared_ptr<MonitorObject> mo1 = make_shared<MonitorObject>(h1, f. taskName , " TST" );
80106
81107 TH1F * h2 = new TH1F (" metadata" , " asdf" , 100 , 0 , 99 );
82- shared_ptr<MonitorObject> mo2 = make_shared<MonitorObject>(h2, " my/task " , " TST" );
108+ shared_ptr<MonitorObject> mo2 = make_shared<MonitorObject>(h2, f. taskName , " TST" );
83109 mo2->addMetadata (" my_meta" , " is_good" );
84110
85111 TH1F * h3 = new TH1F (" short" , " asdf" , 100 , 0 , 99 );
86- shared_ptr<MonitorObject> mo3 = make_shared<MonitorObject>(h3, " my/task " , " TST" );
112+ shared_ptr<MonitorObject> mo3 = make_shared<MonitorObject>(h3, f. taskName , " TST" );
87113
88- shared_ptr<QualityObject> qo1 = make_shared<QualityObject>(Quality::Bad, " test-ccdb-check" , " TST" , " OnAll" , vector{ string (" input1" ), string (" input2" ) });
89- shared_ptr<QualityObject> qo2 = make_shared<QualityObject>(Quality::Null, " metadata" , " TST" , " OnAll" , vector{ string (" input1" ) });
114+ shared_ptr<QualityObject> qo1 = make_shared<QualityObject>(Quality::Bad, f. taskName + " / test-ccdb-check" , " TST" , " OnAll" , vector{ string (" input1" ), string (" input2" ) });
115+ shared_ptr<QualityObject> qo2 = make_shared<QualityObject>(Quality::Null, f. taskName + " / metadata" , " TST" , " OnAll" , vector{ string (" input1" ) });
90116 qo2->addMetadata (" my_meta" , " is_good" );
91- shared_ptr<QualityObject> qo3 = make_shared<QualityObject>(Quality::Good, " short" , " TST" , " OnAll" , vector{ string (" input1" ) });
117+ shared_ptr<QualityObject> qo3 = make_shared<QualityObject>(Quality::Good, f. taskName + " / short" , " TST" , " OnAll" , vector{ string (" input1" ) });
92118
93119 oldTimestamp = CcdbDatabase::getCurrentTimestamp ();
94120 f.backend ->storeMO (mo1);
@@ -121,7 +147,7 @@ BOOST_AUTO_TEST_CASE(ccdb_store_for_future_tests)
121147BOOST_AUTO_TEST_CASE (ccdb_retrieve_mo, *utf::depends_on (" ccdb_store" ))
122148{
123149 test_fixture f;
124- std::shared_ptr<MonitorObject> mo = f.backend ->retrieveMO (" qc/TST/my/task " , " quarantine" );
150+ std::shared_ptr<MonitorObject> mo = f.backend ->retrieveMO (f. getMoFolder ( " quarantine " ) , " quarantine" );
125151 BOOST_REQUIRE_NE (mo, nullptr );
126152 BOOST_CHECK_EQUAL (mo->getName (), " quarantine" );
127153}
@@ -130,13 +156,13 @@ BOOST_AUTO_TEST_CASE(ccdb_retrieve_timestamps, *utf::depends_on("ccdb_store"))
130156{
131157 test_fixture f;
132158
133- std::shared_ptr<MonitorObject> mo = f.backend ->retrieveMO (" qc/TST/MO/my/task " , " short" , 15000 );
159+ std::shared_ptr<MonitorObject> mo = f.backend ->retrieveMO (f. getMoFolder ( " short " ) , " short" , 15000 );
134160 BOOST_REQUIRE_NE (mo, nullptr );
135161 BOOST_CHECK_EQUAL (mo->getName (), " short" );
136162
137- std::shared_ptr<QualityObject> qo = f.backend ->retrieveQO (RepoPathUtils:: getQoPath (" TST " , " short" ), 15000 );
163+ std::shared_ptr<QualityObject> qo = f.backend ->retrieveQO (f. getQoPath (" short" ), 15000 );
138164 BOOST_REQUIRE_NE (qo, nullptr );
139- BOOST_CHECK_EQUAL (qo->getName (), " short" );
165+ BOOST_CHECK_EQUAL (qo->getName (), f. taskName + " / short" );
140166}
141167
142168BOOST_AUTO_TEST_CASE (ccdb_retrieve_inexisting_mo)
@@ -206,7 +232,7 @@ BOOST_AUTO_TEST_CASE(ccdb_retrieve_data_026)
206232BOOST_AUTO_TEST_CASE (ccdb_retrieve_qo, *utf::depends_on (" ccdb_store" ))
207233{
208234 test_fixture f;
209- std::shared_ptr<QualityObject> qo = f.backend ->retrieveQO (RepoPathUtils::getQoPath (" TST" , " test-ccdb-check" ));
235+ std::shared_ptr<QualityObject> qo = f.backend ->retrieveQO (RepoPathUtils::getQoPath (" TST" , f. taskName + " / test-ccdb-check" ));
210236 BOOST_CHECK_NE (qo, nullptr );
211237 Quality q = qo->getQuality ();
212238 BOOST_CHECK_EQUAL (q.getLevel (), 3 );
@@ -216,20 +242,20 @@ BOOST_AUTO_TEST_CASE(ccdb_retrieve_json, *utf::depends_on("ccdb_store"))
216242{
217243 test_fixture f;
218244
219- std::string task = " my/task" ;
220245 std::string object = " quarantine" ;
221- std::string detector = " TST" ;
222-
223- std::string path = RepoPathUtils::getMoPath (detector, task, object);
246+ std::string path = f.getMoPath (object);
224247 std::cout << " [json retrieve]: " << path << std::endl;
225248 auto json = f.backend ->retrieveJson (path, -1 , f.metadata );
226- auto json2 = f.backend ->retrieveMOJson (" qc/TST/MO/" + task, object);
249+ auto json2 = f.backend ->retrieveMOJson (f.getMoFolder (object), object);
250+ cout << " asdf" << endl;
251+ cout << json << endl;
252+ cout << json2 << endl;
227253
228254 BOOST_CHECK (!json.empty ());
229255 BOOST_CHECK_EQUAL (json, json2);
230256
231257 std::string checkName = " test-ccdb-check" ;
232- string qualityPath = RepoPathUtils:: getQoPath (detector, checkName);
258+ string qualityPath = f. getQoPath (checkName);
233259 std::cout << " [json retrieve]: " << qualityPath << std::endl;
234260 auto json3 = f.backend ->retrieveJson (qualityPath, -1 , f.metadata );
235261 auto json4 = f.backend ->retrieveQOJson (qualityPath);
@@ -250,12 +276,10 @@ BOOST_AUTO_TEST_CASE(ccdb_metadata, *utf::depends_on("ccdb_store"))
250276{
251277 test_fixture f;
252278
253- std::string task = " my/task" ;
254- std::string detector = " TST" ;
255- std::string pathQuarantine = RepoPathUtils::getMoPath (detector, task, " quarantine" );
256- std::string pathMetadata = RepoPathUtils::getMoPath (detector, task, " metadata" );
257- std::string pathQuality = RepoPathUtils::getQoPath (detector, " test-ccdb-check" );
258- std::string pathQualityMetadata = RepoPathUtils::getQoPath (detector, " metadata" );
279+ std::string pathQuarantine = f.getMoPath (" quarantine" );
280+ std::string pathMetadata = f.getMoPath (" metadata" );
281+ std::string pathQuality = f.getQoPath (" test-ccdb-check" );
282+ std::string pathQualityMetadata = f.getQoPath (" metadata" );
259283
260284 std::map<std::string, std::string> headers1;
261285 std::map<std::string, std::string> headers2;
@@ -269,8 +293,9 @@ BOOST_AUTO_TEST_CASE(ccdb_metadata, *utf::depends_on("ccdb_store"))
269293 BOOST_CHECK_EQUAL (headers2.count (" my_meta" ), 1 );
270294 BOOST_CHECK_EQUAL (headers2.at (" my_meta" ), " is_good" );
271295
272- auto obj1a = f.backend ->retrieveMO (" qc/TST/my/task" , " quarantine" );
273- auto obj2a = f.backend ->retrieveMO (" qc/TST/my/task" , " metadata" );
296+ // get the path without the objectName because of the interface retrieveMO
297+ auto obj1a = f.backend ->retrieveMO (f.getMoFolder (" quarantine" ), " quarantine" );
298+ auto obj2a = f.backend ->retrieveMO (f.getQoPath (" " ), " metadata" );
274299 BOOST_CHECK_NE (obj1a, nullptr );
275300 BOOST_CHECK_NE (obj2a, nullptr );
276301 BOOST_CHECK (obj1a->getMetadataMap ().size () > 0 );
0 commit comments