Skip to content

Commit 257e910

Browse files
authored
Merge pull request #55438 from dwoz/less_flaky
Less flaky retry tests
2 parents d1b2b97 + 7fde744 commit 257e910

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed

tests/integration/files/file/base/retry/retry_success.sls

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
{{ salt['runtests_helpers.get_salt_temp_dir_for_path']('retry_file') }}:
1+
{{ salt['runtests_helpers.get_salt_temp_dir_for_path']('retry_file_option_success') }}:
22
file:
33
- touch
44

55
file_test:
66
file.exists:
7-
- name: {{ salt['runtests_helpers.get_salt_temp_dir_for_path']('retry_file') }}
7+
- name: {{ salt['runtests_helpers.get_salt_temp_dir_for_path']('retry_file_option_success') }}
88
- retry:
99
until: True
1010
attempts: 5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1-
file_test:
1+
file_test_a:
2+
file.managed:
3+
- name: {{ salt['runtests_helpers.get_salt_temp_dir_for_path']('retry_file_eventual_success') + '_a' }}
4+
- content: 'a'
5+
6+
file_test_b:
27
file.exists:
3-
- name: {{ salt['runtests_helpers.get_salt_temp_dir_for_path']('retry_file') }}
8+
- name: {{ salt['runtests_helpers.get_salt_temp_dir_for_path']('retry_file_eventual_success') }}
49
- retry:
510
until: True
611
attempts: 20
712
interval: 5
13+
- require:
14+
- file_test_a

tests/integration/modules/test_state.py

+14-8
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
# Import Salt Testing libs
1515
from tests.support.case import ModuleCase
16-
from tests.support.helpers import with_tempdir, flaky
16+
from tests.support.helpers import with_tempdir
1717
from tests.support.unit import skipIf
1818
from tests.support.paths import BASE_FILES, TMP, TMP_PILLAR_TREE, TMP_STATE_TREE
1919
from tests.support.mixins import SaltReturnAssertsMixin
@@ -1764,7 +1764,7 @@ def test_retry_option_success(self):
17641764
'''
17651765
test a state with the retry option that should return True immedietly (i.e. no retries)
17661766
'''
1767-
testfile = os.path.join(TMP, 'retry_file')
1767+
testfile = os.path.join(TMP, 'retry_file_option_success')
17681768
state_run = self.run_function(
17691769
'state.sls',
17701770
mods='retry.retry_success'
@@ -1773,29 +1773,35 @@ def test_retry_option_success(self):
17731773
retry_state = 'file_|-file_test_|-{0}_|-exists'.format(testfile)
17741774
self.assertNotIn('Attempt', state_run[retry_state]['comment'])
17751775

1776-
def run_create(self):
1776+
def run_create(self, testfile):
17771777
'''
17781778
helper function to wait 30 seconds and then create the temp retry file
17791779
'''
1780-
testfile = os.path.join(TMP, 'retry_file')
1780+
# Wait for the requisite stae 'file_test_a' to complete before creating
1781+
# test_file
1782+
while True:
1783+
if os.path.exists(testfile + '_a'):
1784+
break
1785+
time.sleep(1)
17811786
time.sleep(30)
17821787
with salt.utils.files.fopen(testfile, 'a'):
17831788
pass
17841789

1785-
@flaky
17861790
def test_retry_option_eventual_success(self):
17871791
'''
17881792
test a state with the retry option that should return True after at least 4 retry attmempt
17891793
but never run 15 attempts
17901794
'''
1791-
testfile = os.path.join(TMP, 'retry_file')
1792-
create_thread = threading.Thread(target=self.run_create)
1795+
testfile = os.path.join(TMP, 'retry_file_eventual_success')
1796+
assert not os.path.exists(testfile + '_a')
1797+
assert not os.path.exists(testfile)
1798+
create_thread = threading.Thread(target=self.run_create, args=(testfile,))
17931799
create_thread.start()
17941800
state_run = self.run_function(
17951801
'state.sls',
17961802
mods='retry.retry_success2'
17971803
)
1798-
retry_state = 'file_|-file_test_|-{0}_|-exists'.format(testfile)
1804+
retry_state = 'file_|-file_test_b_|-{0}_|-exists'.format(testfile)
17991805
self.assertIn('Attempt 1:', state_run[retry_state]['comment'])
18001806
self.assertIn('Attempt 2:', state_run[retry_state]['comment'])
18011807
self.assertIn('Attempt 3:', state_run[retry_state]['comment'])

0 commit comments

Comments
 (0)