Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance zos_archive and zos_unarchive test cases #965

Merged
merged 7 commits into from
Sep 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions changelogs/fragments/965-enhance-archive-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
minor_changes:
- zos_archive: Enhanced test cases to use test lines the same length of the record length.
(https://github.com/ansible-collections/ibm_zos_core/pull/965)
- zos_unarchive: Enhanced test cases to use test lines the same length of the record length.
(https://github.com/ansible-collections/ibm_zos_core/pull/965)
26 changes: 15 additions & 11 deletions tests/functional/modules/test_zos_archive_func.py
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ def test_uss_archive_remove_targets(ansible_zos_module, format):
"record_length", [80, 120]
)
@pytest.mark.parametrize(
"record_format", ["FB", "VB",],
"record_format", ["FB", "VB"],
)
def test_mvs_archive_single_dataset(ansible_zos_module, format, data_set, record_length, record_format):
try:
Expand All @@ -372,8 +372,12 @@ def test_mvs_archive_single_dataset(ansible_zos_module, format, data_set, record
type="member",
state="present"
)
# Write some content into src
test_line = "this is a test line"
# Write some content into src the same size of the record,
# need to reduce 4 from V and VB due to RDW
if record_format in ["V", "VB"]:
test_line = "a" * (record_length - 4)
else:
test_line = "a" * record_length
for member in data_set.get("members"):
if member == "":
ds_to_write = f"{data_set.get('name')}"
Expand Down Expand Up @@ -419,7 +423,7 @@ def test_mvs_archive_single_dataset(ansible_zos_module, format, data_set, record
"record_length", [80, 120]
)
@pytest.mark.parametrize(
"record_format", ["FB", "VB",],
"record_format", ["FB", "VB"],
)
def test_mvs_archive_single_dataset_use_adrdssu(ansible_zos_module, format, data_set, record_length, record_format):
try:
Expand All @@ -444,8 +448,12 @@ def test_mvs_archive_single_dataset_use_adrdssu(ansible_zos_module, format, data
type="member",
state="present"
)
# Write some content into src
test_line = "this is a test line"
# Write some content into src the same size of the record,
# need to reduce 4 from V and VB due to RDW
if record_format in ["V", "VB"]:
test_line = "a" * (record_length - 4)
else:
test_line = "a" * record_length
for member in data_set.get("members"):
if member == "":
ds_to_write = f"{data_set.get('name')}"
Expand Down Expand Up @@ -487,10 +495,7 @@ def test_mvs_archive_single_dataset_use_adrdssu(ansible_zos_module, format, data
dict(name=TEST_PDS, dstype="PDSE", members=["MEM1", "MEM2", "MEM3"]),
]
)
@pytest.mark.parametrize(
"record_length", [80],
)
def test_mvs_archive_single_data_set_remove_target(ansible_zos_module, format, data_set, record_length):
def test_mvs_archive_single_data_set_remove_target(ansible_zos_module, format, data_set):
try:
hosts = ansible_zos_module
# Clean env
Expand All @@ -501,7 +506,6 @@ def test_mvs_archive_single_data_set_remove_target(ansible_zos_module, format, d
name=data_set.get("name"),
type=data_set.get("dstype"),
state="present",
record_length=record_length,
record_format="FB",
replace=True,
)
Expand Down
36 changes: 30 additions & 6 deletions tests/functional/modules/test_zos_unarchive_func.py
Original file line number Diff line number Diff line change
Expand Up @@ -344,8 +344,12 @@ def test_mvs_unarchive_single_data_set(ansible_zos_module, format, data_set, rec
type="member",
state="present"
)
# Write some content into src
test_line = "this is a test line"
# Write some content into src the same size of the record,
# need to reduce 4 from V and VB due to RDW
if record_format in ["V", "VB"]:
test_line = "a" * (record_length - 4)
else:
test_line = "a" * record_length
for member in data_set.get("members"):
if member == "":
ds_to_write = f"{data_set.get('name')}"
Expand Down Expand Up @@ -397,6 +401,11 @@ def test_mvs_unarchive_single_data_set(ansible_zos_module, format, data_set, rec
cmd_result = hosts.all.shell(cmd = "dls {0}.*".format(HLQ))
for c_result in cmd_result.contacted.values():
assert data_set.get("name") in c_result.get("stdout")

# Check data integrity after unarchive
cat_result = hosts.all.shell(cmd=f"dcat \"{ds_to_write}\"")
for result in cat_result.contacted.values():
assert result.get("stdout") == test_line
finally:
hosts.all.zos_data_set(name=data_set.get("name"), state="absent")
hosts.all.zos_data_set(name=MVS_DEST_ARCHIVE, state="absent")
Expand Down Expand Up @@ -442,8 +451,12 @@ def test_mvs_unarchive_single_data_set_use_adrdssu(ansible_zos_module, format, d
type="member",
state="present"
)
# Write some content into src
test_line = "this is a test line"
# Write some content into src the same size of the record,
# need to reduce 4 from V and VB due to RDW
if record_format in ["V", "VB"]:
test_line = "a" * (record_length - 4)
else:
test_line = "a" * record_length
for member in data_set.get("members"):
if member == "":
ds_to_write = f"{data_set.get('name')}"
Expand Down Expand Up @@ -930,8 +943,12 @@ def test_mvs_unarchive_single_data_set_remote_src(ansible_zos_module, format, da
type="member",
state="present"
)
# Write some content into src
test_line = "this is a test line"
# Write some content into src the same size of the record,
# need to reduce 4 from V and VB due to RDW
if record_format in ["V", "VB"]:
test_line = "a" * (record_length - 4)
else:
test_line = "a" * record_length
for member in data_set.get("members"):
if member == "":
ds_to_write = f"{data_set.get('name')}"
Expand Down Expand Up @@ -981,6 +998,13 @@ def test_mvs_unarchive_single_data_set_remote_src(ansible_zos_module, format, da
cmd_result = hosts.all.shell(cmd = "dls {0}.*".format(HLQ))
for c_result in cmd_result.contacted.values():
assert data_set.get("name") in c_result.get("stdout")

# Check data integrity after unarchive
cat_result = hosts.all.shell(cmd=f"dcat \"{ds_to_write}\"")
for result in cat_result.contacted.values():
assert result.get("stdout") == test_line


finally:
hosts.all.shell(cmd="drm {0}*".format(data_set.get("name")))
hosts.all.zos_data_set(name=MVS_DEST_ARCHIVE, state="absent")
Expand Down