|
1 | 1 | # pylint: disable=unused-argument,invalid-name |
2 | 2 | import os |
3 | 3 | import re |
| 4 | +from pathlib import Path |
4 | 5 |
|
5 | 6 | import pytest |
6 | 7 | import salt.utils.files |
@@ -115,7 +116,7 @@ def test_basic_prometheus_output_with_default_options(patch_dunders, job_ret, ca |
115 | 116 | "# TYPE salt_last_completed gauge", |
116 | 117 | "# HELP salt_version Version of installed Salt package", |
117 | 118 | "# TYPE salt_version gauge", |
118 | | - "salt_version {}".format(salt.version.__version__), |
| 119 | + "salt_version {}".format(salt.version.__version__.split("rc", maxsplit=1)[0]), |
119 | 120 | "# HELP salt_version_tagged Version of installed Salt package as a tag", |
120 | 121 | "# TYPE salt_version_tagged gauge", |
121 | 122 | 'salt_version_tagged{{salt_version="{}"}} 1.0'.format(salt.version.__version__), |
@@ -199,7 +200,9 @@ def test_when_add_state_name_is_set_then_correct_output_should_be_in_correct_fil |
199 | 200 | "# TYPE salt_last_completed gauge", |
200 | 201 | "# HELP salt_version Version of installed Salt package", |
201 | 202 | "# TYPE salt_version gauge", |
202 | | - 'salt_version{{state="{}"}} {}'.format(state_name, salt.version.__version__), |
| 203 | + 'salt_version{{state="{}"}} {}'.format( |
| 204 | + state_name, salt.version.__version__.split("rc", maxsplit=1)[0] |
| 205 | + ), |
203 | 206 | "# HELP salt_version_tagged Version of installed Salt package as a tag", |
204 | 207 | "# TYPE salt_version_tagged gauge", |
205 | 208 | 'salt_version_tagged{{salt_version="{}",state="{}"}} 1.0'.format( |
@@ -263,7 +266,7 @@ def test_prometheus_output_with_show_failed_state_option_and_abort_state_ids( |
263 | 266 | "# TYPE salt_last_completed gauge", |
264 | 267 | "# HELP salt_version Version of installed Salt package", |
265 | 268 | "# TYPE salt_version gauge", |
266 | | - "salt_version {}".format(salt.version.__version__), |
| 269 | + "salt_version {}".format(salt.version.__version__.split("rc", maxsplit=1)[0]), |
267 | 270 | "# HELP salt_version_tagged Version of installed Salt package as a tag", |
268 | 271 | "# TYPE salt_version_tagged gauge", |
269 | 272 | 'salt_version_tagged{{salt_version="{}"}} 1.0'.format(salt.version.__version__), |
@@ -381,7 +384,7 @@ def test_fail_comments_lengths(patch_dunders, job_ret, cache_dir, minion): |
381 | 384 | "# TYPE salt_last_completed gauge", |
382 | 385 | "# HELP salt_version Version of installed Salt package", |
383 | 386 | "# TYPE salt_version gauge", |
384 | | - "salt_version {}".format(salt.version.__version__), |
| 387 | + "salt_version {}".format(salt.version.__version__.split("rc", maxsplit=1)[0]), |
385 | 388 | "# HELP salt_version_tagged Version of installed Salt package as a tag", |
386 | 389 | "# TYPE salt_version_tagged gauge", |
387 | 390 | 'salt_version_tagged{{salt_version="{}"}} 1.0'.format(salt.version.__version__), |
@@ -450,7 +453,7 @@ def test_fail_comments_lengths(patch_dunders, job_ret, cache_dir, minion): |
450 | 453 | "# TYPE salt_last_completed gauge", |
451 | 454 | "# HELP salt_version Version of installed Salt package", |
452 | 455 | "# TYPE salt_version gauge", |
453 | | - "salt_version {}".format(salt.version.__version__), |
| 456 | + "salt_version {}".format(salt.version.__version__.split("rc", maxsplit=1)[0]), |
454 | 457 | "# HELP salt_version_tagged Version of installed Salt package as a tag", |
455 | 458 | "# TYPE salt_version_tagged gauge", |
456 | 459 | 'salt_version_tagged{{salt_version="{}"}} 1.0'.format(salt.version.__version__), |
@@ -529,3 +532,42 @@ def test_prometheus_output_with_raw_version(patch_dunders, job_ret, cache_dir, m |
529 | 532 |
|
530 | 533 | assert salt_version == float_version |
531 | 534 | assert salt_version_tagged == expected_version |
| 535 | + |
| 536 | + |
| 537 | +def test_requisite_handling(patch_dunders, cache_dir, minion): |
| 538 | + job_ret = { |
| 539 | + "fun": "state.apply", |
| 540 | + "fun_args": ["prom_ret"], |
| 541 | + "id": "d10-saltgit-01.example.local", |
| 542 | + "jid": "20230312161844491819", |
| 543 | + "out": "highstate", |
| 544 | + "retcode": 2, |
| 545 | + "return": { |
| 546 | + "test_|-failure_|-failure_|-fail_without_changes": { |
| 547 | + "__id__": "failure", |
| 548 | + "__run_num__": 0, |
| 549 | + "__sls__": "prom_ret", |
| 550 | + "changes": {}, |
| 551 | + "comment": "Failure!", |
| 552 | + "duration": 1.074, |
| 553 | + "name": "failure", |
| 554 | + "result": False, |
| 555 | + "start_time": "16:18:44.771989", |
| 556 | + }, |
| 557 | + "test_|-wont_run_|-wont_run_|-succeed_without_changes": { |
| 558 | + "__run_num__": 1, |
| 559 | + "__sls__": "prom_ret", |
| 560 | + "changes": {}, |
| 561 | + "comment": "One or more requisite failed: prom_ret.failure", |
| 562 | + "duration": 0.005, |
| 563 | + "result": False, |
| 564 | + "start_time": "16:18:44.773443", |
| 565 | + }, |
| 566 | + }, |
| 567 | + "success": True, |
| 568 | + } |
| 569 | + |
| 570 | + prometheus_textfile.__opts__.update({"abort_state_ids": ["echo includeme"]}) |
| 571 | + prometheus_textfile.returner(job_ret) |
| 572 | + |
| 573 | + assert Path(os.path.join(cache_dir, "prometheus_textfile", "salt.prom")).exists() |
0 commit comments