tests: fix persistence issue in pyunit tests (#1070)

- Fixed patching/ mocking of functions and global variables to reset for
each test.
- Uncommented tests as they should pass now.
This commit is contained in:
Harshil Patel
2024-04-25 10:03:10 -07:00
committed by GitHub
parent 83e55743e1
commit d75afeabb1
5 changed files with 753 additions and 655 deletions

View File

@@ -52,6 +52,10 @@ mock_config_json = {
}
@patch(
"gem5.resources.client.clientwrapper",
new=None,
)
@patch(
"gem5.resources.client._create_clients",
side_effect=lambda x: _create_clients(mock_config_json),
@@ -71,58 +75,62 @@ class TestObtainResourcesCheck(unittest.TestCase):
"resources",
)
# def test_obtain_resources_no_version(self, mock_create_client):
# """Test that the resource loader returns latest version compatible with that version of gem5 when no version is specified."""
# gem5Version = core.gem5Version
# resource = obtain_resource(
# resource_id="test-binary-resource",
# resource_directory=self.get_resource_dir(),
# gem5_version="develop",
# )
# self.assertEqual("1.7.0", resource.get_resource_version())
# self.assertIsInstance(resource, BinaryResource)
# self.assertEqual("test description v1.7.0", resource.get_description())
# self.assertEqual("src/test-source", resource.get_source())
# self.assertEqual(ISA.ARM, resource.get_architecture())
def test_obtain_resources_no_version(self, mock_create_client):
"""Test that the resource loader returns latest version compatible with that version of gem5 when no version is specified."""
gem5Version = core.gem5Version
resource = obtain_resource(
resource_id="test-binary-resource",
resource_directory=self.get_resource_dir(),
gem5_version="develop",
)
self.assertEqual("1.7.0", resource.get_resource_version())
self.assertIsInstance(resource, BinaryResource)
self.assertEqual("test description v1.7.0", resource.get_description())
self.assertEqual("src/test-source", resource.get_source())
self.assertEqual(ISA.ARM, resource.get_architecture())
# def test_obtain_resources_with_version_compatible(self, mock_create_client):
# resource = obtain_resource(
# resource_id="test-binary-resource",
# resource_directory=self.get_resource_dir(),
# resource_version="1.5.0",
# gem5_version="develop",
# )
# self.assertEqual("1.5.0", resource.get_resource_version())
# self.assertIsInstance(resource, BinaryResource)
# self.assertEqual(
# "test description for 1.5.0", resource.get_description()
# )
# self.assertEqual("src/test-source", resource.get_source())
# self.assertEqual(ISA.ARM, resource.get_architecture())
def test_obtain_resources_with_version_compatible(
self, mock_create_client
):
resource = obtain_resource(
resource_id="test-binary-resource",
resource_directory=self.get_resource_dir(),
resource_version="1.5.0",
gem5_version="develop",
)
self.assertEqual("1.5.0", resource.get_resource_version())
self.assertIsInstance(resource, BinaryResource)
self.assertEqual(
"test description for 1.5.0", resource.get_description()
)
self.assertEqual("src/test-source", resource.get_source())
self.assertEqual(ISA.ARM, resource.get_architecture())
# def test_obtain_resources_with_version_incompatible(self, mock_create_client):
# resource = None
# f = io.StringIO()
# with contextlib.redirect_stderr(f):
# resource = obtain_resource(
# resource_id="test-binary-resource",
# resource_directory=self.get_resource_dir(),
# resource_version="1.5.0",
# )
def test_obtain_resources_with_version_incompatible(
self, mock_create_client
):
resource = None
f = io.StringIO()
with contextlib.redirect_stderr(f):
resource = obtain_resource(
resource_id="test-binary-resource",
resource_directory=self.get_resource_dir(),
resource_version="1.5.0",
)
# resource = obtain_resource(
# resource_id="test-binary-resource",
# resource_directory=self.get_resource_dir(),
# resource_version="1.5.0",
# gem5_version="develop",
# )
# self.assertEqual("1.5.0", resource.get_resource_version())
# self.assertIsInstance(resource, BinaryResource)
# self.assertEqual(
# "test description for 1.5.0", resource.get_description()
# )
# self.assertEqual("src/test-source", resource.get_source())
# self.assertEqual(ISA.ARM, resource.get_architecture())
resource = obtain_resource(
resource_id="test-binary-resource",
resource_directory=self.get_resource_dir(),
resource_version="1.5.0",
gem5_version="develop",
)
self.assertEqual("1.5.0", resource.get_resource_version())
self.assertIsInstance(resource, BinaryResource)
self.assertEqual(
"test description for 1.5.0", resource.get_description()
)
self.assertEqual("src/test-source", resource.get_source())
self.assertEqual(ISA.ARM, resource.get_architecture())
def test_obtain_resources_no_version_invalid_id(self, mock_create_client):
with self.assertRaises(Exception) as context: