DIRAC 9.0.0a66__py3-none-any.whl → 9.0.0a67__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. DIRAC/ConfigurationSystem/Client/VOMS2CSSynchronizer.py +1 -1
  2. DIRAC/Core/Security/IAMService.py +4 -3
  3. DIRAC/Core/Utilities/ClassAd/ClassAdLight.py +4 -290
  4. DIRAC/Core/Utilities/DErrno.py +1 -1
  5. DIRAC/Core/Utilities/JDL.py +1 -195
  6. DIRAC/Core/Utilities/List.py +1 -127
  7. DIRAC/Core/Utilities/ReturnValues.py +2 -2
  8. DIRAC/Core/Utilities/StateMachine.py +12 -178
  9. DIRAC/Core/Utilities/TimeUtilities.py +10 -253
  10. DIRAC/Core/Utilities/test/Test_JDL.py +0 -3
  11. DIRAC/DataManagementSystem/DB/FTS3DB.py +3 -0
  12. DIRAC/RequestManagementSystem/DB/test/RMSTestScenari.py +2 -0
  13. DIRAC/Resources/Catalog/RucioFileCatalogClient.py +1 -1
  14. DIRAC/Resources/Computing/test/Test_PoolComputingElement.py +2 -1
  15. DIRAC/Workflow/Modules/test/Test_Modules.py +5 -0
  16. DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_JobAgent.py +2 -0
  17. DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_PushJobAgent.py +1 -0
  18. DIRAC/WorkloadManagementSystem/Client/JobState/JobManifest.py +32 -261
  19. DIRAC/WorkloadManagementSystem/Client/JobStatus.py +8 -93
  20. DIRAC/WorkloadManagementSystem/DB/JobDBUtils.py +18 -147
  21. DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapper.py +4 -2
  22. DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapper.py +21 -5
  23. DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapperTemplate.py +4 -0
  24. DIRAC/WorkloadManagementSystem/Utilities/JobModel.py +28 -199
  25. DIRAC/WorkloadManagementSystem/Utilities/JobStatusUtility.py +1 -63
  26. DIRAC/WorkloadManagementSystem/Utilities/ParametricJob.py +7 -171
  27. DIRAC/WorkloadManagementSystem/Utilities/test/Test_JobModel.py +1 -5
  28. DIRAC/WorkloadManagementSystem/Utilities/test/Test_ParametricJob.py +45 -128
  29. {dirac-9.0.0a66.dist-info → dirac-9.0.0a67.dist-info}/METADATA +2 -2
  30. {dirac-9.0.0a66.dist-info → dirac-9.0.0a67.dist-info}/RECORD +34 -36
  31. DIRAC/Core/Utilities/test/Test_List.py +0 -150
  32. DIRAC/Core/Utilities/test/Test_Time.py +0 -88
  33. {dirac-9.0.0a66.dist-info → dirac-9.0.0a67.dist-info}/WHEEL +0 -0
  34. {dirac-9.0.0a66.dist-info → dirac-9.0.0a67.dist-info}/entry_points.txt +0 -0
  35. {dirac-9.0.0a66.dist-info → dirac-9.0.0a67.dist-info}/licenses/LICENSE +0 -0
  36. {dirac-9.0.0a66.dist-info → dirac-9.0.0a67.dist-info}/top_level.txt +0 -0
@@ -1,138 +1,55 @@
1
- """ This is a test of the parametric job generation tools
2
- """
1
+ """ This is a test of the parametric job generation tools"""
3
2
  # pylint: disable= missing-docstring
4
3
 
5
4
  import pytest
6
5
 
6
+ # Test imports from DIRAC to verify backward compatibility
7
7
  from DIRAC.WorkloadManagementSystem.Utilities.ParametricJob import generateParametricJobs, getParameterVectorLength
8
8
  from DIRAC.Core.Utilities.ClassAd.ClassAdLight import ClassAd
9
9
 
10
- TEST_JDL_NO_PARAMETERS = """
11
- [
12
- Executable = "my_executable";
13
- Arguments = "%s";
14
- JobName = "Test_%n";
15
- ]
16
- """
17
10
 
18
- TEST_JDL_SIMPLE = """
19
- [
20
- Executable = "my_executable";
21
- Arguments = "%s";
22
- JobName = "Test_%n";
23
- Parameters = { "a", "b", "c" }
24
- ]
25
- """
26
-
27
- TEST_JDL_SIMPLE_BUNCH = """
28
- [
29
- Executable = "my_executable";
30
- Arguments = "%s";
31
- JobName = "Test_%n";
32
- Parameters = 3;
33
- ParameterStart = 5;
34
- ]
35
- """
36
-
37
- TEST_JDL_SIMPLE_PROGRESSION = """
38
- [
39
- Executable = "my_executable";
40
- Arguments = "%s";
41
- JobName = "Test_%n";
42
- Parameters = 3;
43
- ParameterStart = 1;
44
- ParameterStep = 1;
45
- ParameterFactor = 2;
46
- ]
47
- """
48
-
49
- TEST_JDL_MULTI = """
50
- [
51
- Executable = "my_executable";
52
- Arguments = "%(A)s %(B)s";
53
- JobName = "Test_%n";
54
- Parameters = 3;
55
- ParameterStart.A = 1;
56
- ParameterStep.A = 1;
57
- ParameterFactor.A = 2;
58
- Parameters.B = { "a","b","c" };
59
- ]
60
- """
61
-
62
- TEST_JDL_MULTI_BAD = """
63
- [
64
- Executable = "my_executable";
65
- Arguments = "%(A)s %(B)s";
66
- JobName = "Test_%n";
67
- Parameters = 3;
68
- ParameterStart.A = 1;
69
- ParameterStep.A = 1;
70
- ParameterFactor.A = 2;
71
- Parameters.B = { "a","b","c","d" };
72
- ]
73
- """
74
-
75
-
76
- @pytest.mark.parametrize(
77
- "jdl, expectedArguments",
78
- [
79
- (TEST_JDL_SIMPLE, ["a", "b", "c"]),
80
- (TEST_JDL_SIMPLE_BUNCH, ["5", "5", "5"]),
81
- (TEST_JDL_SIMPLE_PROGRESSION, ["1", "3", "7"]),
82
- (TEST_JDL_MULTI, ["1 a", "3 b", "7 c"]),
83
- (TEST_JDL_NO_PARAMETERS, []),
84
- ],
85
- )
86
- def test_getParameterVectorLength_successful(jdl: str, expectedArguments: list[str]):
11
+ def test_backward_compatibility_import():
12
+ """Test that imports from DIRAC still work (backward compatibility)"""
87
13
  # Arrange
88
- jobDescription = ClassAd(jdl)
89
-
90
- # Act
91
- result = getParameterVectorLength(jobDescription)
92
-
93
- # Assert
94
- assert result["OK"], result["Message"]
95
- if expectedArguments:
96
- assert result["Value"] == len(expectedArguments)
97
- else:
98
- assert result["Value"] == None
99
-
100
-
101
- @pytest.mark.parametrize("jdl", [TEST_JDL_MULTI_BAD])
102
- def test_getParameterVectorLength_unsuccessful(jdl: str):
103
- # Arrange
104
- jobDescription = ClassAd(jdl)
105
-
106
- # Act
107
- result = getParameterVectorLength(jobDescription)
108
-
109
- # Assert
110
- assert not result["OK"], result["Value"]
111
-
112
-
113
- @pytest.mark.parametrize(
114
- "jdl, expectedArguments",
14
+ jdl = """
115
15
  [
116
- (TEST_JDL_SIMPLE, ["a", "b", "c"]),
117
- (TEST_JDL_SIMPLE_BUNCH, ["5", "5", "5"]),
118
- (TEST_JDL_SIMPLE_PROGRESSION, ["1", "3", "7"]),
119
- (TEST_JDL_MULTI, ["1 a", "3 b", "7 c"]),
120
- ],
121
- )
122
- def test_generateParametricJobs(jdl: str, expectedArguments: list[str]):
123
- # Arrange
124
- parametricJobDescription = ClassAd(jdl)
125
-
126
- # Act
127
- result = generateParametricJobs(parametricJobDescription)
128
-
129
- # Assert
130
- assert result["OK"], result["Message"]
131
- assert result["Value"]
132
- jobDescList = result["Value"]
133
- assert len(jobDescList) == len(expectedArguments)
134
-
135
- for i in range(len(jobDescList)):
136
- jobDescription = ClassAd(jobDescList[i])
137
- assert jobDescription.getAttributeString("JobName") == f"Test_{i}"
138
- assert jobDescription.getAttributeString("Arguments") == expectedArguments[i]
16
+ Executable = "my_executable";
17
+ Arguments = "%s";
18
+ JobName = "Test_%n";
19
+ Parameters = { "a", "b", "c" }
20
+ ]
21
+ """
22
+
23
+ # Act - Test that we can import and use the functions from DIRAC
24
+ jobDescription = ClassAd(jdl)
25
+ vector_result = getParameterVectorLength(jobDescription)
26
+ generate_result = generateParametricJobs(jobDescription)
27
+
28
+ # Assert - Verify functions work correctly
29
+ assert vector_result["OK"]
30
+ assert vector_result["Value"] == 3
31
+ assert generate_result["OK"]
32
+ assert len(generate_result["Value"]) == 3
33
+
34
+
35
+ # Import and run the comprehensive tests from DIRACCommon to avoid duplication
36
+ # This ensures the DIRAC re-exports work with the full test suite
37
+ try:
38
+ from DIRACCommon.tests.WorkloadManagementSystem.Utilities.test_ParametricJob import (
39
+ test_getParameterVectorLength_successful,
40
+ test_getParameterVectorLength_unsuccessful,
41
+ test_generateParametricJobs,
42
+ )
43
+
44
+ # Re-export the DIRACCommon tests so they run as part of DIRAC test suite
45
+ # This validates that the backward compatibility imports work correctly
46
+ __all__ = [
47
+ "test_backward_compatibility_import",
48
+ "test_getParameterVectorLength_successful",
49
+ "test_getParameterVectorLength_unsuccessful",
50
+ "test_generateParametricJobs",
51
+ ]
52
+
53
+ except ImportError:
54
+ # If DIRACCommon tests can't be imported, just run the backward compatibility test
55
+ __all__ = ["test_backward_compatibility_import"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DIRAC
3
- Version: 9.0.0a66
3
+ Version: 9.0.0a67
4
4
  Summary: DIRAC is an interware, meaning a software framework for distributed computing.
5
5
  Home-page: https://github.com/DIRACGrid/DIRAC/
6
6
  License: GPL-3.0-only
@@ -19,7 +19,7 @@ Requires-Dist: cachetools
19
19
  Requires-Dist: certifi
20
20
  Requires-Dist: cwltool
21
21
  Requires-Dist: diraccfg
22
- Requires-Dist: DIRACCommon==v9.0.0a66
22
+ Requires-Dist: DIRACCommon==v9.0.0a67
23
23
  Requires-Dist: diracx-client>=v0.0.1a18
24
24
  Requires-Dist: diracx-core>=v0.0.1a18
25
25
  Requires-Dist: db12
@@ -61,7 +61,7 @@ DIRAC/ConfigurationSystem/Client/ConfigurationData.py,sha256=3BhUZUne2KiMKSNqs1e
61
61
  DIRAC/ConfigurationSystem/Client/LocalConfiguration.py,sha256=KaVGD4YVEfxCspVavddAEQpcetynvek-msfFIquawE4,32442
62
62
  DIRAC/ConfigurationSystem/Client/PathFinder.py,sha256=wxOWC0_UznF7XJc0LP9DX8y3yltOApJXwZehx1ghgpU,11054
63
63
  DIRAC/ConfigurationSystem/Client/Utilities.py,sha256=lQepoCgaAvg9GW3_-s-IXkWb3fN3HJJP95pYhNEC2_4,27200
64
- DIRAC/ConfigurationSystem/Client/VOMS2CSSynchronizer.py,sha256=U-y7vc8NYwsyQLFkSzKCXnVEJMIoLsxgthFC0z9x7Dk,31426
64
+ DIRAC/ConfigurationSystem/Client/VOMS2CSSynchronizer.py,sha256=7gcA6eqKIeRBLxETR5CjCdqXHZeQMVDNZfHkz28W20k,31433
65
65
  DIRAC/ConfigurationSystem/Client/__init__.py,sha256=Jkxofl9cI04MqJcu_ZP8Wdk3WXOmiESFJS9e81LnG2Y,52
66
66
  DIRAC/ConfigurationSystem/Client/Helpers/CSGlobals.py,sha256=_txOWvYqcRzK4n4VVEwvECe_B45PmqiYHTxjEIOP6MQ,1053
67
67
  DIRAC/ConfigurationSystem/Client/Helpers/Operations.py,sha256=jrpeauEwV6_xXQwVEbs6DDboB8oUmzkZkB_Xg8ZgdBQ,5991
@@ -155,7 +155,7 @@ DIRAC/Core/LCG/GOCDBClient.py,sha256=FTxnwJqd3j99vfLkC2ouyrCsnVLFEwg_GHaq6zY1Db8
155
155
  DIRAC/Core/LCG/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
156
  DIRAC/Core/LCG/test/Test_LCG.py,sha256=2VsUEgyWDC6BC2KsMz9tB6TsMHYmpg0Qfjs3utiXKcg,32871
157
157
  DIRAC/Core/Security/DiracX.py,sha256=lMnqdhgONZYr96YHTwx8g0dwDgfejT5kJBicS4E3IWw,5022
158
- DIRAC/Core/Security/IAMService.py,sha256=ISbNH0c7vWiZ-sx4PVS1yqxdFNvV6-xmemiJtFL6P6I,6775
158
+ DIRAC/Core/Security/IAMService.py,sha256=7LQs3PuDz1KM6r6rMefjiV_9FCpXL-sDUNm8-rrdGOE,6911
159
159
  DIRAC/Core/Security/Locations.py,sha256=Ew1-J4tAwfbgkW1_MAlIIkeBi6_MJLsefNAL8vBi7_k,8031
160
160
  DIRAC/Core/Security/Properties.py,sha256=CjHN-YQwBiAdZyTos9b6Zpg5a6Sh_hFNUvpszxzEgnE,6180
161
161
  DIRAC/Core/Security/ProxyFile.py,sha256=nN4WnEpr9oZsPBhsIwQFWvf83wYIajN1E7SirEKefvk,3876
@@ -223,7 +223,7 @@ DIRAC/Core/Utilities/CGroups2.py,sha256=dKJf0yAACpcO5wIGsOgvf5Sh7ZZNua_gSn_u95gj
223
223
  DIRAC/Core/Utilities/CountryMapping.py,sha256=6OfH_sYS0F3qrJn-Hp_YSR0l7WWNsglHtH6AIDGR58A,1080
224
224
  DIRAC/Core/Utilities/DAG.py,sha256=ME-oxtsV2PYIuWikL8-571RR3U21siHxo1hFQGi3s9Q,3587
225
225
  DIRAC/Core/Utilities/DEncode.py,sha256=O-5Yi185V05tBNyXCxoourRQkuOCP6pTyDYaRgNdi8w,15578
226
- DIRAC/Core/Utilities/DErrno.py,sha256=hnRO64KrCrhETHAEiJh44CQfc0VoC8L-FNi7UOlWvUU,3193
226
+ DIRAC/Core/Utilities/DErrno.py,sha256=tQ2NoVdA_Ff0vrWHgFFC35To6KQaJb95xX2Li-VXsGI,3202
227
227
  DIRAC/Core/Utilities/DIRACSingleton.py,sha256=UqJHJNJyX4ehCB5PGDuA74FuCaoih6V979ftr8KboH4,1219
228
228
  DIRAC/Core/Utilities/Decorators.py,sha256=WAYke0p9VKov24stHO-S4HEia-HGCSA1c1XDyxxZtw8,7153
229
229
  DIRAC/Core/Utilities/Devloader.py,sha256=nPEinBId-NzyG1zcjcnUQOO-pWmNJsmWkj-Xkt5dn_c,2572
@@ -237,9 +237,9 @@ DIRAC/Core/Utilities/Extensions.py,sha256=k0kgUjc50oFZ1e2XwOERJLQMSSCbnx3HwBO_xF
237
237
  DIRAC/Core/Utilities/File.py,sha256=XWaxGr_kdoQgznQr20fzWNsvkurJVfd7GMnOqRlwvJQ,8264
238
238
  DIRAC/Core/Utilities/Glue2.py,sha256=OCxTfdKnqf-Hkt60Jz5Y0Ww0ZvA7jW-f485UVo8YrUE,16058
239
239
  DIRAC/Core/Utilities/Grid.py,sha256=1Jf889thLUGV56k-YkzxLN0nJ3j_FIlIIkS781-0Hy0,2824
240
- DIRAC/Core/Utilities/JDL.py,sha256=foF3ANpm8XpxjsnjpLflEdfcdV3GESrf9AysjMWAKVA,13575
240
+ DIRAC/Core/Utilities/JDL.py,sha256=H36fvJQr0p4jgD8dr387xrPE2YDs3von6ovP8syjNVM,7107
241
241
  DIRAC/Core/Utilities/JEncode.py,sha256=5SGVhHqFnjsyOB5yAmvM_GFw_bFzCYMrB-Yb8-68Abw,7459
242
- DIRAC/Core/Utilities/List.py,sha256=AahQrlQqfnh8tyA1GjGqYJfo_3v5N77IQreA8VCNXks,3758
242
+ DIRAC/Core/Utilities/List.py,sha256=Iz3GOZ0hjnxOqlUIEBYzsxFK-myIt5Idyug2cMltY1A,65
243
243
  DIRAC/Core/Utilities/LockRing.py,sha256=vCZHHCyNwZYDTIZB72TpmSVOJ8UMTZsVSzaUq_4AJoQ,3234
244
244
  DIRAC/Core/Utilities/Mail.py,sha256=DQB7Qd5Hkz-cLuyYPCrx5JZ8H3fevvyBC6skJMlEJRw,4110
245
245
  DIRAC/Core/Utilities/MixedEncode.py,sha256=jM_ypRT5YfO3mP9cOBe4F6ewOGUdZV0DpVxfcSTH1VA,974
@@ -254,19 +254,19 @@ DIRAC/Core/Utilities/ProcessPool.py,sha256=AQ-ABejCKbdYVn4SD_Qy2DWZYA39fIt_3Occp
254
254
  DIRAC/Core/Utilities/Profiler.py,sha256=sSMe9Mp-C1lNT_AkMbZMcOsD2vxlKNWGa-eMSCp4t4c,7531
255
255
  DIRAC/Core/Utilities/PromptUser.py,sha256=Pg51ZPZwXLYk8ncwrVvpimXfelWKxCeocRekRlqs2fQ,1441
256
256
  DIRAC/Core/Utilities/Proxy.py,sha256=BDAq_PXcuN6AlGX1gs9n8_yY9xT7JOtlKIO2cdTS24I,9816
257
- DIRAC/Core/Utilities/ReturnValues.py,sha256=utF0CJ5PQX4D3J7KBRBJwOiNVm8ut8bgToXmWs0k_c8,438
257
+ DIRAC/Core/Utilities/ReturnValues.py,sha256=EHtnn1I3Lvq6RO9tTVZMlf19a8QGX1B6Qa7lbM1mBlY,456
258
258
  DIRAC/Core/Utilities/Shifter.py,sha256=EkJGPR_zbL0SS3E2_cq1-MjkTH91ZaFJlh-tQ2PxDGk,2571
259
259
  DIRAC/Core/Utilities/SiteSEMapping.py,sha256=Uynx_evXQPmfbMKH-TfqzLq4e_7APVrP6gC20cJEBYs,5683
260
- DIRAC/Core/Utilities/StateMachine.py,sha256=jxPsFSlqQvbNBZiKCuiztpTf9onsHeQDhk_1piNQcyw,6691
260
+ DIRAC/Core/Utilities/StateMachine.py,sha256=e1rc0X6J8Cf_W9HlLnLgroLkdrksUQUxdkH_qSoZVoA,769
261
261
  DIRAC/Core/Utilities/Subprocess.py,sha256=FcdEKKEySh_62S8VLjWp_HnuFYkKAjqsS8FLpPMS1b8,22756
262
262
  DIRAC/Core/Utilities/ThreadPool.py,sha256=tETtgUdW1dlq_7xp_nQUTxNC87jAkrNnwvuDpGS3ffE,11484
263
263
  DIRAC/Core/Utilities/ThreadSafe.py,sha256=EAxEMqEuYlzDvAaupW3fi2MY-3kGZJ0zbK9i7JhEmt4,1117
264
264
  DIRAC/Core/Utilities/ThreadScheduler.py,sha256=IzyS59NF0ZhQwGYLpZ-yMX8_6kXFSGL9FQapylnoPLE,6212
265
- DIRAC/Core/Utilities/TimeUtilities.py,sha256=crrPLbRp6_nvXdLvcxY_oSGTA9jKRSUpETktp030_0A,8984
265
+ DIRAC/Core/Utilities/TimeUtilities.py,sha256=oelYaWawcyhdBZ11af9LP1gGL_X2evmFqHXjAXMn-Bo,573
266
266
  DIRAC/Core/Utilities/Version.py,sha256=v3-IJMvV-GeiSBtVFP8EQtyi8I-j59VjQWAxjNVBCDY,822
267
267
  DIRAC/Core/Utilities/__init__.py,sha256=O0Bn56QrIuI5wEWDrKcAZgmm8QWwHF6f9IBAMJbRCUM,40
268
268
  DIRAC/Core/Utilities/exceptions.py,sha256=7oUzOe3amADdL4VpidE20xpBc1y9GjIGLKTKnD_SOho,413
269
- DIRAC/Core/Utilities/ClassAd/ClassAdLight.py,sha256=7450ECzxnJQpIjzbaE-uFp3ISE55iL6YM-TRqyebZTY,9597
269
+ DIRAC/Core/Utilities/ClassAd/ClassAdLight.py,sha256=pAsBMotnGJzSGsPQNFwfMHGOIH0pC-1ILZsuu-eRMP8,280
270
270
  DIRAC/Core/Utilities/ClassAd/__init__.py,sha256=turhp9pDVt5luiCwBR2j_d3LibAP8lZGl5PEkZf7CPc,38
271
271
  DIRAC/Core/Utilities/Graphs/BarGraph.py,sha256=MNQFJOFYvUjoa4ZpCkAifdVlnVaSFpD5MAIX2AFara4,6520
272
272
  DIRAC/Core/Utilities/Graphs/CurveGraph.py,sha256=x1g-vYO4FsHaOxR7-1C0q7QLizhJGx50sckxJi6XwZc,5407
@@ -295,8 +295,7 @@ DIRAC/Core/Utilities/test/Test_Encode.py,sha256=nZZCl7Lwu23JYNg2J21B6gEFLeRQy5OV
295
295
  DIRAC/Core/Utilities/test/Test_ExecutorDispatcher.py,sha256=b1SonUM0cDULn1aByD96oy9vS8VxqUvWroiC6FJSDHE,3336
296
296
  DIRAC/Core/Utilities/test/Test_Extensions.py,sha256=LKX5sX9h1HpdsxPhMMqbRPTWSY9YP49Sn_NtHkryoGE,1052
297
297
  DIRAC/Core/Utilities/test/Test_File.py,sha256=tPtu1-wwPCLjIEvYdp6K5MNKfnRcwlza0cCsIbyFTEU,4393
298
- DIRAC/Core/Utilities/test/Test_JDL.py,sha256=PhYBXXa0Faj2nA9sM0QGv_NvK7yN4k2cPuqOj6RsaJg,3901
299
- DIRAC/Core/Utilities/test/Test_List.py,sha256=gtB3-RK47FwQZvgzmb_SLF_Sr5kgIdi4q-0Zu0DX_g0,4848
298
+ DIRAC/Core/Utilities/test/Test_JDL.py,sha256=WhquP7BtdIz6aonVPxySgQLaPG806IgWv9DPYcJQJHo,3753
300
299
  DIRAC/Core/Utilities/test/Test_Mail.py,sha256=I-dn82uWXdY-W57FqiQEZPc-yrPvXWAl4uapsbVloXE,1631
301
300
  DIRAC/Core/Utilities/test/Test_Network.py,sha256=n1m1OB9JIEqT4AGz_DKt9QOgMOsV6m5qH7N4xU5KOoM,1378
302
301
  DIRAC/Core/Utilities/test/Test_ObjectLoader.py,sha256=PfDjfnPNNByC7Ropkfl8qrkjUWFJ702wRmH7_0_Qg9Q,968
@@ -305,7 +304,6 @@ DIRAC/Core/Utilities/test/Test_ProcessPool.py,sha256=NnfHNkhTOgADk-P9ds_ADuvcSNl
305
304
  DIRAC/Core/Utilities/test/Test_Profiler.py,sha256=Y4h6GzIHJb0yvbNWYczj-GC5Ibx59ecEC4i1FLzlN-o,4115
306
305
  DIRAC/Core/Utilities/test/Test_ReturnValues.py,sha256=w6Jz-Vblgu8RDXPzVi6BZjuFXcSmW-Zb0mcBgW1RWOw,1926
307
306
  DIRAC/Core/Utilities/test/Test_Subprocess.py,sha256=nAiVF5oMnle-4E8ijlWF-ilBfgN2VGkkFQQSKhIKN2o,2141
308
- DIRAC/Core/Utilities/test/Test_Time.py,sha256=qI_yDD2iu-QBJJ_1em3uxrX5y0ZKLtb2zp2yNDxZiZw,2225
309
307
  DIRAC/Core/Utilities/test/Test_entrypoints.py,sha256=z_3f7m59v3W6ZsqgeCFbJoBnMY-cKR_blKbPqcV7528,413
310
308
  DIRAC/Core/Utilities/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
311
309
  DIRAC/Core/Workflow/Module.py,sha256=XF_iDyJ1wIwUesHLfDGz9BywHgEuOwqzC2f7fY3E7r4,12631
@@ -383,7 +381,7 @@ DIRAC/DataManagementSystem/Client/test/mock_DM.py,sha256=S7qWHjN3ZyjqKIjHkXwuUWJ
383
381
  DIRAC/DataManagementSystem/Client/test/new_dir_completion.py,sha256=_Km7jE4IRe-pY8BJ62hK6IbwRROoj0wxvL7WMClEJ0E,1212
384
382
  DIRAC/DataManagementSystem/DB/DataIntegrityDB.py,sha256=JlYwiVMzB_aVrnntqKk9Aoxoxma6rJhQV9rk8FS3PXY,7098
385
383
  DIRAC/DataManagementSystem/DB/DataIntegrityDB.sql,sha256=JCIf2aFsHnP0APlg5KyUVWwviZX4ulmkHnShuK8Afx4,104
386
- DIRAC/DataManagementSystem/DB/FTS3DB.py,sha256=fVA9m94bWOHS83-847_4h_qim_Ur_YRwa8pMWxqH1Y8,28091
384
+ DIRAC/DataManagementSystem/DB/FTS3DB.py,sha256=6_-qv_4m07DCzAlfcSCkIDhzszHnwC6iiqILzAS5cjQ,28254
387
385
  DIRAC/DataManagementSystem/DB/FTS3DB.sql,sha256=byMsj37tHh1D8gPE39zgpV89JFcOJ235Nf_q4fmLNw8,95
388
386
  DIRAC/DataManagementSystem/DB/FileCatalogDB.py,sha256=qcrGv0KCiJUCbRcUt_RKIMrb1MG2IAivu7JkcTJGQVQ,43679
389
387
  DIRAC/DataManagementSystem/DB/FileCatalogDB.sql,sha256=9OETQKhQTW_BDfJhLZuJwzZAMK8nZd8-RISV07g7msk,9025
@@ -755,7 +753,7 @@ DIRAC/RequestManagementSystem/Client/test/Test_Request.py,sha256=OhAhi-UZaeGSn5o
755
753
  DIRAC/RequestManagementSystem/DB/ReqDB.sql,sha256=E-AQ53JIoNhYtzl7aF3EVdrhjFahg9lYVgWIqQGlbJU,94
756
754
  DIRAC/RequestManagementSystem/DB/RequestDB.py,sha256=FOksr3bOYrbqLoOSI0dblHWP3-6DnQfYAT2s4al3wR0,40213
757
755
  DIRAC/RequestManagementSystem/DB/__init__.py,sha256=yDBlSu9WrDcUPCz29rWiLH8Zk-_Al3ek5vNAZF0JGHQ,52
758
- DIRAC/RequestManagementSystem/DB/test/RMSTestScenari.py,sha256=-NWzil3iSLbF8xYP0o15xGtdS5N_rvFf5YQB26LGPKg,4922
756
+ DIRAC/RequestManagementSystem/DB/test/RMSTestScenari.py,sha256=DlmKqwNWCoQwpvEHjf1Vw0Fa-GLlXGlEdQzlNatsk8U,4954
759
757
  DIRAC/RequestManagementSystem/DB/test/Test_RequestDB.py,sha256=GENVd4ke9AL8Eb_XBoYtJ7WdA9bB5CwbmHg0LGW8L_A,1409
760
758
  DIRAC/RequestManagementSystem/DB/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
761
759
  DIRAC/RequestManagementSystem/Service/ReqManagerHandler.py,sha256=JL6gXqhrpWRbcVoMhVFKAtmuBFp1LxtIkPYoxdraXO0,13764
@@ -883,7 +881,7 @@ DIRAC/Resources/Catalog/FileCatalogClientBase.py,sha256=sZXbEukvq30-C9jp_YW2AoER
883
881
  DIRAC/Resources/Catalog/FileCatalogFactory.py,sha256=INrO5vWB4B3a5lCphRO58d8jaoE9jck2kweah-2QC_4,2189
884
882
  DIRAC/Resources/Catalog/PoolXMLCatalog.py,sha256=ktbI-r86l5GaZlfs4apxAsUV7AV-L53LVNmyBdf3dEw,11774
885
883
  DIRAC/Resources/Catalog/PoolXMLFile.py,sha256=Hri5LvSXhxHBDtRkliGO75w-I1K0zffvoCK8EvcvVMk,4833
886
- DIRAC/Resources/Catalog/RucioFileCatalogClient.py,sha256=xDRolN0oqWoLaWb5uUFv0DFYHuHYp6S8hVhWTlbEJPA,39868
884
+ DIRAC/Resources/Catalog/RucioFileCatalogClient.py,sha256=I1E0vOpfYtD7gywBu5AZqlIpVURDrNMAk3SWNDgnSic,39869
887
885
  DIRAC/Resources/Catalog/TSCatalogClient.py,sha256=4ELbmGsyBaUIkIBMhOnI4fV7JAGggoTIlCPp8rKBsX4,1788
888
886
  DIRAC/Resources/Catalog/Utilities.py,sha256=cJTQbjyD986kWG72MMdV3YAKDaTkIVOGwnqQyXZKDss,3020
889
887
  DIRAC/Resources/Catalog/__init__.py,sha256=rIskCijf47o4q20IiOEqEtkmq3-zHWJzyc4Vlvdw-ik,40
@@ -944,7 +942,7 @@ DIRAC/Resources/Computing/test/Test_AREXComputingElement.py,sha256=00DdLY_PLsGVo
944
942
  DIRAC/Resources/Computing/test/Test_ComputingElement.py,sha256=lIVHO8ottEU1z0B4X_-V2Uqf6C9bJoDa-Tgh6-DVwYM,1541
945
943
  DIRAC/Resources/Computing/test/Test_HTCondorCEComputingElement.py,sha256=7x8SqbOHfnn-c-fzyc2FK00_cJ25A3ed-oR9rfkwKXw,8193
946
944
  DIRAC/Resources/Computing/test/Test_InProcessComputingElement.py,sha256=j_ESF_f7-Aov48rtAZUjZclQvXSlKMs3SIpPu4uTJZ0,2067
947
- DIRAC/Resources/Computing/test/Test_PoolComputingElement.py,sha256=KPzPRp4Pz0EpO-bDQxTcfSpvgPikvqAYv98SRStiAhQ,11843
945
+ DIRAC/Resources/Computing/test/Test_PoolComputingElement.py,sha256=Vmil6Z9bazv_AKeenma7LznzJAdrUf2xKMQ6HP0PhLE,11860
948
946
  DIRAC/Resources/Computing/test/Test_SSHComputingElement.py,sha256=ahYUZ9hySaEXik3nvUMWJ7eP87xj6u-LMDpX7A1OQd4,2425
949
947
  DIRAC/Resources/Computing/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
950
948
  DIRAC/Resources/IdProvider/CheckInIdProvider.py,sha256=xMGhVQGGuiouxtuH4jJSsfqd53yk67p4oSNn_-gDft8,879
@@ -1115,7 +1113,7 @@ DIRAC/Workflow/Modules/FailoverRequest.py,sha256=QFv_YXtItXMzfGGKAIk_UJMSK1Maze3
1115
1113
  DIRAC/Workflow/Modules/ModuleBase.py,sha256=hkK0D_VErhYTIu5U1R1Yu5zLen4OhPL86PHIp-8bvZM,23412
1116
1114
  DIRAC/Workflow/Modules/Script.py,sha256=yOteb-YkfNe2R8lyjV4zmaFKcmXFcAqtko9FReStF7g,5142
1117
1115
  DIRAC/Workflow/Modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1118
- DIRAC/Workflow/Modules/test/Test_Modules.py,sha256=O9x9DRTmo1JpBolWbFK6LiwL2Mq8R9gjgpPHpRDducE,32354
1116
+ DIRAC/Workflow/Modules/test/Test_Modules.py,sha256=d92bA2SpF7Wwg9gy3roEvPt_7QlnBT4yLXEhjYohTUM,32435
1119
1117
  DIRAC/Workflow/Utilities/Utils.py,sha256=9f395ylWaLRaaC6EExPAyvOhPK3FXD7I_XGevqueRkM,2545
1120
1118
  DIRAC/Workflow/Utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1121
1119
  DIRAC/Workflow/Utilities/test/Test_Utilities.py,sha256=DNjFPpBmpojwCWhZSUSoG3AIhMQvqyiZdSuVkrHkOtk,2595
@@ -1132,11 +1130,11 @@ DIRAC/WorkloadManagementSystem/Agent/StalledJobAgent.py,sha256=foEbmRotEmfeQG6ny
1132
1130
  DIRAC/WorkloadManagementSystem/Agent/StatesAccountingAgent.py,sha256=iNIlWQEDBk6R1S8oHOIusZUwxOwLtgwuzR_4s32-o5w,8707
1133
1131
  DIRAC/WorkloadManagementSystem/Agent/TaskQueuesAgent.py,sha256=ypsmo233TFXq9IC5uz6pum7_joOh2gFPUYNmmCpukAY,943
1134
1132
  DIRAC/WorkloadManagementSystem/Agent/__init__.py,sha256=Pp2qIXA0zZxJXBQwPEDUt23Y_ct5cjs77w8ZEV6Ll6M,56
1135
- DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_JobAgent.py,sha256=1bO-eK54mhCJOncS58vj6VhNLAF16_5wuXWeLxnVMxk,30686
1133
+ DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_JobAgent.py,sha256=4NO_gGL0uQODuniFxInQblAa_wZQtQenrAJkqgn8YG4,30722
1136
1134
  DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_JobCleaningAgent.py,sha256=VwD3lGCEYeQuT-5wo02Yk11lR0dXmg0ObNCEvBZ-QSA,5415
1137
1135
  DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_PilotLoggingAgent.py,sha256=KpvaqAaTaCXUpbdBpA_n7At3284XKYwx8GpC3Ah7cHg,8611
1138
1136
  DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_PilotStatusAgent.py,sha256=qOA_U2NYvJprLdrUJirbEVSnvEF9-FuRXNi78MBoffc,2806
1139
- DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_PushJobAgent.py,sha256=YrQELLUPWq0IYjaZNAlSystsNaAidTV1k-_s1N2dAb8,14869
1137
+ DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_PushJobAgent.py,sha256=Uf5jlnw8mWvQJcOnJXEASEf3Ryo63wZKv8IavQVaOVY,14887
1140
1138
  DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_SiteDirector.py,sha256=ynC8NJobwWCRzKAKnQi2qhnPzwQypZRzBrwKGtUmmhs,11440
1141
1139
  DIRAC/WorkloadManagementSystem/Agent/test/Test_Agent_StalledJobAgent.py,sha256=BgDP1um-5WLSJYDbyHgLUkZocN8TrrG6QvRcffzD02E,1829
1142
1140
  DIRAC/WorkloadManagementSystem/Client/CPUNormalization.py,sha256=txBgRfnTAY5KykpKRrK1jp5x4FInWjv-Rja4R7Dqdis,5423
@@ -1148,7 +1146,7 @@ DIRAC/WorkloadManagementSystem/Client/JobMinorStatus.py,sha256=adfPJVGauByrHg1LL
1148
1146
  DIRAC/WorkloadManagementSystem/Client/JobMonitoringClient.py,sha256=N_i0e5rzNpUJgPDm7HKHQ2OfX_fJQC-r8zU3yNIAyH4,2483
1149
1147
  DIRAC/WorkloadManagementSystem/Client/JobReport.py,sha256=8jxCXdU1rHeYeHMkjc_5b2zAPBWT3VgNR4wkXB5E2NY,5870
1150
1148
  DIRAC/WorkloadManagementSystem/Client/JobStateUpdateClient.py,sha256=H5nfOWhp5YlAh-bpndvebcDy60RXoB3nLIAKu4kMK4I,1130
1151
- DIRAC/WorkloadManagementSystem/Client/JobStatus.py,sha256=JieQ7wobGexHkQ_HJi3ga1COftAz3bZ367toVmgmp_g,2807
1149
+ DIRAC/WorkloadManagementSystem/Client/JobStatus.py,sha256=YtD0ya7_lq5PWrkiylkLYpvxuEakc96H0v-6HKIy44E,484
1152
1150
  DIRAC/WorkloadManagementSystem/Client/Limiter.py,sha256=xnxR9d_TDb8Z6iAaUltCMxmpSmQBukXfFeEDf2-m6-o,10714
1153
1151
  DIRAC/WorkloadManagementSystem/Client/Matcher.py,sha256=iw6COWP__53z6of5syU4ElmOUCtih0xWxh1VDrd-M8k,17285
1154
1152
  DIRAC/WorkloadManagementSystem/Client/MatcherClient.py,sha256=E4Szdf-gNmDZnCmR3aiakBNqX7LU0lHlFXBTh2qpqp8,1362
@@ -1163,7 +1161,7 @@ DIRAC/WorkloadManagementSystem/Client/WMSAdministratorClient.py,sha256=cuf1LmCTS
1163
1161
  DIRAC/WorkloadManagementSystem/Client/WMSClient.py,sha256=7C3Tq0Nz4gsIAUngPTaStRdWPp4rFCoEMws4e-COZoU,9307
1164
1162
  DIRAC/WorkloadManagementSystem/Client/__init__.py,sha256=4gL5nAGDaZDdL0wlTFBQg6jCGQA2xHT3gD-gpY5MfH0,57
1165
1163
  DIRAC/WorkloadManagementSystem/Client/JobState/CachedJobState.py,sha256=NVHsvGezMDWAsjPt5Lm1973ybleyH1kHWqhqiiMgquM,12849
1166
- DIRAC/WorkloadManagementSystem/Client/JobState/JobManifest.py,sha256=dV8nH5rWsdvOOOFuOX3vhOZRC879zUvrSv11vMp6CuU,8952
1164
+ DIRAC/WorkloadManagementSystem/Client/JobState/JobManifest.py,sha256=VJnoDJCQBw5oseudM5gTahcpamoVZ7xrM7qxCL3I_VE,1465
1167
1165
  DIRAC/WorkloadManagementSystem/Client/JobState/JobState.py,sha256=onHJF-u9WTnvsXceNyQmfDb-i6n9KY4MnH_ZBamCw9E,12921
1168
1166
  DIRAC/WorkloadManagementSystem/Client/JobState/__init__.py,sha256=4gL5nAGDaZDdL0wlTFBQg6jCGQA2xHT3gD-gpY5MfH0,57
1169
1167
  DIRAC/WorkloadManagementSystem/Client/PilotLoggingPlugins/DownloadPlugin.py,sha256=Rw4kqFqlZj0I-xuNU_zFWXCvF9NK9cLYgyr2HG31TvA,863
@@ -1178,7 +1176,7 @@ DIRAC/WorkloadManagementSystem/Client/test/Test_JobReport.py,sha256=QYElAZiyPuMK
1178
1176
  DIRAC/WorkloadManagementSystem/Client/test/Test_TornadoPilotLoggingClient.py,sha256=GRY5TA34FwLNmvVix5U2nT-5Jw1Cs8K5MJtzQ_ZlLBw,596
1179
1177
  DIRAC/WorkloadManagementSystem/DB/JobDB.py,sha256=73PASIBNAu34Uz5QDnJ1-HoKlNMTZ3P69TH9CBHoDYs,57035
1180
1178
  DIRAC/WorkloadManagementSystem/DB/JobDB.sql,sha256=Fo3cXMrVs6CKZgpTLGXfJrwq3VK0kdQmUf9MLYm3HbU,5444
1181
- DIRAC/WorkloadManagementSystem/DB/JobDBUtils.py,sha256=gzDKXQ9Dug5_d82hIVWzjGBGq_jbaRP1cZyneSab9Qo,5586
1179
+ DIRAC/WorkloadManagementSystem/DB/JobDBUtils.py,sha256=Tj7DrkKFrSZxkW9eqlw9_d66PgoeH83VAwWAqVVr_ZI,1595
1182
1180
  DIRAC/WorkloadManagementSystem/DB/JobLoggingDB.py,sha256=YiXQQu6WvBWwkknTch9_z43Ubzj0aRhw18SFNzni2z8,7603
1183
1181
  DIRAC/WorkloadManagementSystem/DB/JobLoggingDB.sql,sha256=hYmXOj5qGeLVSPZdipGjyVRaCcLmIxrFb7nXQ1QJrI0,1869
1184
1182
  DIRAC/WorkloadManagementSystem/DB/JobParametersDB.py,sha256=t-q3NEO_dMTVHZ7LMI8wFWZr0ECZ_ChQskbfz-H-CU8,7791
@@ -1205,14 +1203,14 @@ DIRAC/WorkloadManagementSystem/FutureClient/JobMonitoringClient.py,sha256=3Mjq3h
1205
1203
  DIRAC/WorkloadManagementSystem/FutureClient/JobStateUpdateClient.py,sha256=PG3JkQPgmPacjTLTCHTobZeKys4nxObs0D_Axfrl2Uw,6650
1206
1204
  DIRAC/WorkloadManagementSystem/FutureClient/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1207
1205
  DIRAC/WorkloadManagementSystem/JobWrapper/JobExecutionCoordinator.py,sha256=Y64YnkrKklOkXnV5wKsgzBONFljVJ0ByFVUMFNkiGAU,2461
1208
- DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapper.py,sha256=wAxQT5NMJdt94X_YHbSN-uCLgcJW6jC6NhbqRGo-Km8,74716
1206
+ DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapper.py,sha256=paoNJpBRRsB51f3PniXIb7vXnesu_xB7L-ZLnml0-LY,74804
1209
1207
  DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapperOfflineTemplate.py,sha256=wem5VDN9XiC7szAzdsbgHUxpIOQB2Hj36DIVMoV9px8,2490
1210
1208
  DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapperTemplate.py,sha256=4QgcFPMLRaTagP9e_Vvsla8pFH8HdewklHfS-gyS4-g,3313
1211
1209
  DIRAC/WorkloadManagementSystem/JobWrapper/JobWrapperUtilities.py,sha256=5w_4PMnaHhuexChADDvt1L9Ih1PstdUuYWObnlv9Dto,10072
1212
1210
  DIRAC/WorkloadManagementSystem/JobWrapper/Watchdog.py,sha256=wGpIdnyVzI5T9agxNp94gmPZPceXWREaJiEtZg1lAzk,39997
1213
1211
  DIRAC/WorkloadManagementSystem/JobWrapper/__init__.py,sha256=e9Oa_ddNLweR3Lp_HOMK6WqqCWWj2SLPxF5UH4F19ic,61
1214
- DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapper.py,sha256=LWsMovusgrcHAEjuPQxToKvZh2UYX1ZAxNeU9H_rD3M,38294
1215
- DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapperTemplate.py,sha256=WKs5e63CbxQkiAHGaeS_MlVQNXdYMyQsMEGNoArMO0A,21910
1212
+ DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapper.py,sha256=qoj3Rb6VOTwilJ79DPjr4SKSvDwIuZSqPK9xjTfZpNc,38829
1213
+ DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_JobWrapperTemplate.py,sha256=dC_SvC5Rlchlj2NvBfN7FH1ioXgC8bf9U8BQnEL5GYg,21982
1216
1214
  DIRAC/WorkloadManagementSystem/JobWrapper/test/Test_Watchdog.py,sha256=a-QJ1E1ZcWObhOVgxZYD_nYjseCWsbjT0KxjZDNWyAQ,882
1217
1215
  DIRAC/WorkloadManagementSystem/JobWrapper/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1218
1216
  DIRAC/WorkloadManagementSystem/JobWrapper/test/jobDescription.xml,sha256=TFgcPFXiBfWuBdPHOAmy3IGgAx5Y24gM4mekMmzLXkA,4724
@@ -1238,10 +1236,10 @@ DIRAC/WorkloadManagementSystem/Service/TornadoWMSAdministratorHandler.py,sha256=
1238
1236
  DIRAC/WorkloadManagementSystem/Service/WMSAdministratorHandler.py,sha256=Y63hqyLSH3PUzuHZpkFl1Y9MtJ8dm2RI10tRhPit7Rs,6119
1239
1237
  DIRAC/WorkloadManagementSystem/Service/WMSUtilities.py,sha256=VMSOEHkpOrNB_VIGESnxMYdnDjkmR4Qbnf_H7Yp0m88,4528
1240
1238
  DIRAC/WorkloadManagementSystem/Service/__init__.py,sha256=IRaXIxMoS1SbRehm7ONo87SD1l44VBmowjbfkChvdsc,58
1241
- DIRAC/WorkloadManagementSystem/Utilities/JobModel.py,sha256=sdlbeiHLYkuWTwoGftSQn4SjVw6cBs28A8Q5dHGjX5U,8477
1239
+ DIRAC/WorkloadManagementSystem/Utilities/JobModel.py,sha256=jN9sFbzMZo9tab6Kp7OeBCMCrfx21gCqRbm1XjLxong,1781
1242
1240
  DIRAC/WorkloadManagementSystem/Utilities/JobParameters.py,sha256=JW3AAEtBJn1gIO_rm2Ft5qqjfLteIo3HpQtGNZBfhxE,8365
1243
- DIRAC/WorkloadManagementSystem/Utilities/JobStatusUtility.py,sha256=CMTbHWTOSURzyg_ytNPDdjNqZ4qiI8SVoRabUuZTnXk,10198
1244
- DIRAC/WorkloadManagementSystem/Utilities/ParametricJob.py,sha256=BnH1k0lPZnQMuwjrnUB8V0g8d3QuwdwFaQbNiRbUpgU,7387
1241
+ DIRAC/WorkloadManagementSystem/Utilities/JobStatusUtility.py,sha256=WtGJzC7fHvydANh8JH6e1Kk_jebrCMPr2c5cw3ufjm8,7826
1242
+ DIRAC/WorkloadManagementSystem/Utilities/ParametricJob.py,sha256=FNUsGhvsFVrtmA7r8G-sd4QTMeBkqG1sdtwiBUKQyd0,605
1245
1243
  DIRAC/WorkloadManagementSystem/Utilities/PilotCStoJSONSynchronizer.py,sha256=aJr2YdE5fb_gieejEyqOg_zcB9MFW5ikzVyKVjnGBN4,9838
1246
1244
  DIRAC/WorkloadManagementSystem/Utilities/PilotWrapper.py,sha256=VcvQTpeyTbVYqSsPQDyAt37N2CaEAnIuvbR6yk4kYk8,15465
1247
1245
  DIRAC/WorkloadManagementSystem/Utilities/QueueUtilities.py,sha256=J5-n_lvWbW_TRjrlqp8hx1SHEaXDW2Dxp3R1hBBrWnE,12082
@@ -1249,9 +1247,9 @@ DIRAC/WorkloadManagementSystem/Utilities/RemoteRunner.py,sha256=7FcEtlYSJMzdbLIF
1249
1247
  DIRAC/WorkloadManagementSystem/Utilities/Utils.py,sha256=A6M-GnyC5LXeO0pJxwzqNdLjZLMC3WZ1o7dVFXumrsU,5331
1250
1248
  DIRAC/WorkloadManagementSystem/Utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1251
1249
  DIRAC/WorkloadManagementSystem/Utilities/jobAdministration.py,sha256=uLgB0QLFPKUlZoWCOJYtQHaKykgCpodalHnMWpGld4s,548
1252
- DIRAC/WorkloadManagementSystem/Utilities/test/Test_JobModel.py,sha256=dY7rRU8iOVYEgVLLXwjbx6vCUUHUZqOytDQO6ziarM8,8200
1250
+ DIRAC/WorkloadManagementSystem/Utilities/test/Test_JobModel.py,sha256=coRtGksgrKIdodk7QFn-AjODBJBLfiH0Sf7I2F0rpbI,8040
1253
1251
  DIRAC/WorkloadManagementSystem/Utilities/test/Test_JobStatusUtility.py,sha256=3Oj4zhiysp-Qiax1BsXK1fEyCuppln4tT5hmXx_BFxA,7931
1254
- DIRAC/WorkloadManagementSystem/Utilities/test/Test_ParametricJob.py,sha256=mo_u-m4lM65c1Sgq6As4NpIiKRC0ny1oeBVYRBo61CM,3334
1252
+ DIRAC/WorkloadManagementSystem/Utilities/test/Test_ParametricJob.py,sha256=smq0bt323v4obfSeNQSTxSj1Gs0r_gSlyi7IBgvoBdw,1989
1255
1253
  DIRAC/WorkloadManagementSystem/Utilities/test/Test_PilotCStoJSONSynchronizer.py,sha256=4yFC8lfYjIoCILErU8dW50gnGInFygeODcR0C5Ss5_w,4056
1256
1254
  DIRAC/WorkloadManagementSystem/Utilities/test/Test_PilotWrapper.py,sha256=eXJaMUbA5TVGLoauO7BOttegWlv_KSXcqUluuQC09HU,5552
1257
1255
  DIRAC/WorkloadManagementSystem/Utilities/test/Test_QueueUtilities.py,sha256=QVrq1RnCLEmI3mc-XTBr2w57bkJd-XAPccSenWffgj8,5805
@@ -1296,9 +1294,9 @@ DIRAC/tests/Workflow/Integration/exe-script.py,sha256=B_slYdTocEzqfQLRhwuPiLyYUn
1296
1294
  DIRAC/tests/Workflow/Integration/helloWorld.py,sha256=tBgEHH3ZF7ZiTS57gtmm3DW-Qxgm_57HWHpM-Y8XSws,205
1297
1295
  DIRAC/tests/Workflow/Regression/helloWorld.py,sha256=69eCgFuVSYo-mK3Dj2dw1c6g86sF5FksKCf8V2aGVoM,509
1298
1296
  DIRAC/tests/Workflow/Regression/helloWorld.xml,sha256=xwydIcFTAHIX-YPfQfyxuQ7hzvIO3IhR3UAF7ORgkGg,5310
1299
- dirac-9.0.0a66.dist-info/licenses/LICENSE,sha256=uyr4oV6jmjUeepXZPPjkJRwa5q5MrI7jqJz5sVXNblQ,32452
1300
- dirac-9.0.0a66.dist-info/METADATA,sha256=O7cq5FZoLgGPJiwSKDLOIcAwemtym0zmOo9JHwNjXpc,10020
1301
- dirac-9.0.0a66.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1302
- dirac-9.0.0a66.dist-info/entry_points.txt,sha256=hupzIL8aVmjK3nn7RLKdhcaiPmLOiD3Kulh3CSDHKmw,16492
1303
- dirac-9.0.0a66.dist-info/top_level.txt,sha256=RISrnN9kb_mPqmVu8_o4jF-DSX8-h6AcgfkO9cgfkHA,6
1304
- dirac-9.0.0a66.dist-info/RECORD,,
1297
+ dirac-9.0.0a67.dist-info/licenses/LICENSE,sha256=uyr4oV6jmjUeepXZPPjkJRwa5q5MrI7jqJz5sVXNblQ,32452
1298
+ dirac-9.0.0a67.dist-info/METADATA,sha256=KsoeED4NaIZwsKIfB0lKcpwodmhirv2SVHYYUWTMMPQ,10020
1299
+ dirac-9.0.0a67.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1300
+ dirac-9.0.0a67.dist-info/entry_points.txt,sha256=hupzIL8aVmjK3nn7RLKdhcaiPmLOiD3Kulh3CSDHKmw,16492
1301
+ dirac-9.0.0a67.dist-info/top_level.txt,sha256=RISrnN9kb_mPqmVu8_o4jF-DSX8-h6AcgfkO9cgfkHA,6
1302
+ dirac-9.0.0a67.dist-info/RECORD,,
@@ -1,150 +0,0 @@
1
- ########################################################################
2
- # Author: Krzysztof.Ciba@NOSPAMgmail.com
3
- # Date: 2011/01/17 08:17:58
4
- ########################################################################
5
-
6
- """.. module:: ListTestCase
7
-
8
- Test cases for DIRAC.Core.Utilities.List module.
9
-
10
- """
11
- import unittest
12
-
13
- # sut
14
- from DIRAC.Core.Utilities import List
15
-
16
-
17
- ########################################################################
18
- class ListTestCase(unittest.TestCase):
19
- """py:class ListTestCase
20
- Test case for DIRAC.Core.Utilities.List module.
21
- """
22
-
23
- def testUniqueElements(self):
24
- """uniqueElements tests"""
25
- # empty list
26
- aList = []
27
- self.assertEqual(List.uniqueElements(aList), [])
28
- # redundant elements
29
- aList = [1, 1, 2, 3]
30
- self.assertEqual(List.uniqueElements(aList), [1, 2, 3])
31
-
32
- def testAppendUnique(self):
33
- """appendUnique tests"""
34
- # empty
35
- aList = []
36
- List.appendUnique(aList, None)
37
- self.assertEqual(aList, [None])
38
- # redundant element
39
- aList = [1, 2, 3]
40
- List.appendUnique(aList, 1)
41
- self.assertEqual(aList, [1, 2, 3])
42
- # all unique
43
- aList = [1, 2]
44
- List.appendUnique(aList, 3)
45
- self.assertEqual(aList, [1, 2, 3])
46
-
47
- def testRandomize(self):
48
- """randomize tests"""
49
- # empty list
50
- aList = []
51
- randList = List.randomize(aList)
52
- self.assertEqual(randList, [])
53
- # non empty
54
- aList = ["1", "2", "3"]
55
- randList = List.randomize(aList)
56
- self.assertEqual(len(aList), len(randList))
57
- for x in aList:
58
- self.assertEqual(x in randList, True)
59
- for x in randList:
60
- self.assertEqual(x in aList, True)
61
-
62
- def testPop(self):
63
- """pop tests"""
64
- # empty list
65
- aList = []
66
- x = List.pop(aList, 1)
67
- self.assertEqual(aList, [])
68
- self.assertEqual(x, None)
69
- # pop
70
- aList = [1, 2, 3]
71
- x = List.pop(aList, 2)
72
- self.assertEqual(x, 2)
73
- self.assertEqual(aList, [1, 3])
74
-
75
- def testStringListToString(self):
76
- """stringListToString tests"""
77
- # empty list
78
- aList = []
79
- aStr = List.stringListToString(aList)
80
- self.assertEqual(aStr, "")
81
- # not string elements (should it raise an exception???)
82
- aList = ["a", 1]
83
- aStr = List.stringListToString(aList)
84
- self.assertEqual(aStr, "'a','1'")
85
- # normal list
86
- aList = ["a", "b", "c"]
87
- aStr = List.stringListToString(aList)
88
- self.assertEqual(aStr, "'a','b','c'")
89
-
90
- def testIntListToString(self):
91
- """intListToString"""
92
- # empty list
93
- aList = []
94
- aStr = List.intListToString(aList)
95
- self.assertEqual(aStr, "")
96
- # int list
97
- aList = [1, 2, 3]
98
- aStr = List.intListToString(aList)
99
- self.assertEqual(aStr, "1,2,3")
100
- # mixture elements (should it raise an exception???)
101
- aList = ["1", 2, 3]
102
- aStr = List.intListToString(aList)
103
- self.assertEqual(aStr, "1,2,3")
104
-
105
- def testFromChar(self):
106
- """fromChar tests"""
107
- # empty string
108
- aStr = ""
109
- self.assertEqual(List.fromChar(aStr, "-"), [])
110
- # wrong sep (should it raise an exception???)
111
- aStr = "a:b:c"
112
- self.assertEqual(List.fromChar(aStr, "-"), ["a:b:c"])
113
- # norman behavior
114
- aStr = "a:b:c"
115
- self.assertEqual(List.fromChar(aStr, ":"), ["a", "b", "c"])
116
- # only sep
117
- aStr = ","
118
- self.assertEqual(List.fromChar(aStr, ","), [])
119
- # too many separators
120
- aStr = "a,,b,,c,,,"
121
- self.assertEqual(List.fromChar(aStr, ","), ["a", "b", "c"])
122
-
123
- def testBreakListIntoChunks(self):
124
- """breakListIntoChunks tests"""
125
- # empty list
126
- aList = []
127
- self.assertEqual(List.breakListIntoChunks(aList, 5), [])
128
- # negative number of chunks
129
- try:
130
- List.breakListIntoChunks([], -2)
131
- except Exception as val:
132
- self.assertEqual(isinstance(val, RuntimeError), True)
133
- self.assertEqual(str(val), "chunkSize cannot be less than 1")
134
-
135
- # normal behavior
136
- aList = list(range(10))
137
- self.assertEqual(List.breakListIntoChunks(aList, 5), [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
138
- # and once again this time with a rest
139
- aList = list(range(10))
140
- self.assertEqual(List.breakListIntoChunks(aList, 4), [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9]])
141
- # almost empty list, too many chunks
142
- aList = [1]
143
- self.assertEqual(List.breakListIntoChunks(aList, 2), [[1]])
144
-
145
-
146
- # test suite execution
147
- if __name__ == "__main__":
148
- TESTLOADER = unittest.TestLoader()
149
- SUITE = TESTLOADER.loadTestsFromTestCase(ListTestCase)
150
- unittest.TextTestRunner(verbosity=3).run(SUITE)