import unittest from dependabro.utils import parse_and_update_terraform_content class TestParseAndUpdateTerraformContent(unittest.TestCase): def test_parse_and_update_terraform_content_updates_correctly(self): content = """ module "example" { source = "git@github.com:theorchard/terraform-repo.git//?ref=1.0.0" } """ module_versions = {"terraform-repo": "2.0.0"} latest_terraform_version = "1.11.4" updated_content, file_updated = parse_and_update_terraform_content( content, module_versions, latest_terraform_version ) print(updated_content) print(file_updated) self.assertTrue(file_updated) self.assertIn( 'source = "git@github.com:theorchard/terraform-repo.git//?ref=2.0.0"', updated_content, ) def test_parse_and_update_terraform_content_no_update_needed(self): content = 'module "example" {\n source = "git@github.com:theorchard/terraform-repo.git//?ref=2.0.0"\n}' module_versions = {"terraform-repo": "2.0.0"} latest_terraform_version = "1.11.4" updated_content, file_updated = parse_and_update_terraform_content( content, module_versions, latest_terraform_version ) self.assertFalse(file_updated) self.assertEqual(content, updated_content) def test_parse_and_update_terraform_content_handles_unknown_version(self): content = 'module "example" {\n source = "git@github.com:theorchard/terraform-repo.git//?ref=1.0.0"\n}' module_versions = {"terraform-repo": "unknown"} latest_terraform_version = "1.11.4" updated_content, file_updated = parse_and_update_terraform_content( content, module_versions, latest_terraform_version ) self.assertFalse(file_updated) self.assertEqual(content, updated_content) def test_parse_and_update_terraform_content_handles_no_version_in_source(self): content = """ module "example" { source = "git@github.com:theorchard/terraform-repo.git//" }""" module_versions = {"terraform-repo": "2.0.0"} latest_terraform_version = "1.11.4" updated_content, file_updated = parse_and_update_terraform_content( content, module_versions, latest_terraform_version ) self.assertTrue(file_updated) self.assertIn( 'source = "git@github.com:theorchard/terraform-repo.git//?ref=2.0.0"', updated_content, ) def test_parse_and_update_terraform_content_handles_no_matching_module(self): content = 'module "example" {\n source = "git@github.com:example/other-repo.git//?ref=1.0.0"\n}' module_versions = {"terraform-repo": "2.0.0"} latest_terraform_version = "1.11.4" updated_content, file_updated = parse_and_update_terraform_content( content, module_versions, latest_terraform_version ) self.assertFalse(file_updated) self.assertEqual(content, updated_content) if __name__ == "__main__": unittest.main()