Belle II Software development
test-metadata-providers-and-cached-globaltags.py
1
8
9'''
10Test that basf2 runs smoothly if we use globaltags that are not in a local database.
11Test also that the order of the providers does not matter in case we pass non-existing globaltags,
12or globaltags with a non-allowed status (e.g. OPEN).
13'''
14
15import basf2 as b2
16import b2test_utils as b2tu
17
18
19def path_for_test(globaltags, providers):
20 b2.conditions.metadata_providers = providers
21 for globaltag in globaltags:
22 b2.conditions.append_globaltag(globaltag)
23 b2.set_random_seed('114')
24 main = b2.Path()
25 main.add_module('EventInfoSetter')
26 main.add_module('PrintBeamParameters')
27 b2.process(main)
28
29
30if __name__ == '__main__':
31
32 b2tu.configure_logging_for_tests(replace_cdb_provider=False)
33
34 local = '/cvmfs/belle.cern.ch/conditions/database.sqlite'
35 central = 'http://belle2db.sdcc.bnl.gov/b2s/rest/'
36
37 for providers in [[central], [central, local], [local, central]]:
38 # This must pass, no matter what
39 assert (b2tu.run_in_subprocess(target=path_for_test, globaltags=[], providers=providers) == 0)
40 # We append a PUBLISHED globaltag, not cached -> must pass
41 assert (b2tu.run_in_subprocess(target=path_for_test, globaltags=['user_depietro_cdb_test_1'], providers=providers) == 0)
42 # We append a OPEN globaltag, not cached -> must fail
43 assert (b2tu.run_in_subprocess(target=path_for_test, globaltags=['user_depietro_cdb_test_2'], providers=providers) != 0)
44 # We append a INVALID globaltag, not cached -> must fail
45 assert (b2tu.run_in_subprocess(target=path_for_test, globaltags=['user_depietro_cdb_test_3'], providers=providers) != 0)
46 # We append a not existing globaltag -> must fail
47 assert (b2tu.run_in_subprocess(target=path_for_test, globaltags=['114'], providers=providers) != 0)
48 # We append also a OPEN globaltag, not cached -> must fail
49 assert (
50 b2tu.run_in_subprocess(
51 target=path_for_test,
52 globaltags=[
53 'user_depietro_cdb_test_1',
54 'user_depietro_cdb_test_2'],
55 providers=providers) != 0)
56 # We append also a INVALID globaltag, not cached -> must fail
57 assert (
58 b2tu.run_in_subprocess(
59 target=path_for_test,
60 globaltags=[
61 'user_depietro_cdb_test_1',
62 'user_depietro_cdb_test_3'],
63 providers=providers) != 0)
64 # We append a OPEN and a INVALID globaltag, not cached -> must fail
65 assert (
66 b2tu.run_in_subprocess(
67 target=path_for_test,
68 globaltags=[
69 'user_depietro_cdb_test_2',
70 'user_depietro_cdb_test_3'],
71 providers=providers) != 0)
72 # We append also a not existing globaltag -> must fail
73 assert (
74 b2tu.run_in_subprocess(
75 target=path_for_test,
76 globaltags=[
77 'user_depietro_cdb_test_1',
78 '114'],
79 providers=providers) != 0)
80 # We append also a not existing globaltag -> must fail
81 assert (
82 b2tu.run_in_subprocess(
83 target=path_for_test,
84 globaltags=[
85 'user_depietro_cdb_test_2',
86 '114'],
87 providers=providers) != 0)
88 # We append also a not existing globaltag -> must fail
89 assert (
90 b2tu.run_in_subprocess(
91 target=path_for_test,
92 globaltags=[
93 'user_depietro_cdb_test_1',
94 'user_depietro_cdb_test_2',
95 '114'],
96 providers=providers) != 0)
97
98 for providers in [[local]]:
99 # This must pass, no matter what
100 assert (b2tu.run_in_subprocess(target=path_for_test, globaltags=[], providers=providers) == 0)
101 # We append a not-cached globaltag -> must fail
102 assert (b2tu.run_in_subprocess(target=path_for_test, globaltags=['user_depietro_cdb_test_1'], providers=providers) != 0)
103 # We don't test the other cases, they are all equivalent to the previous one