@@ -136,13 +136,17 @@ async def test_search_modules(self, terraform_client, mock_cache):
136136 @pytest .mark .asyncio
137137 async def test_get_module_versions (self , terraform_client , mock_cache ):
138138 """Test getting module versions."""
139- # Setup
139+ # Setup - use correct nested API structure
140140 mock_response = MagicMock ()
141141 mock_response .json .return_value = {
142142 "modules" : [
143- {"version" : "1.0.0" },
144- {"version" : "1.1.0" },
145- {"version" : "1.2.0" },
143+ {
144+ "versions" : [
145+ {"version" : "1.0.0" },
146+ {"version" : "1.1.0" },
147+ {"version" : "1.2.0" },
148+ ]
149+ }
146150 ]
147151 }
148152 mock_response .raise_for_status = MagicMock ()
@@ -154,27 +158,31 @@ async def test_get_module_versions(self, terraform_client, mock_cache):
154158 "hashicorp" , "consul" , "aws"
155159 )
156160
157- # Verify
158- assert result == ["1.0 .0" , "1.1.0" , "1.2 .0" ]
161+ # Verify - sorted in descending order (latest first)
162+ assert result == ["1.2 .0" , "1.1.0" , "1.0 .0" ]
159163 terraform_client .client .get .assert_called_once_with (
160164 "/modules/hashicorp/consul/aws/versions"
161165 )
162166
163167 @pytest .mark .asyncio
164168 async def test_get_module_versions_filters_prerelease (self , terraform_client , mock_cache ):
165169 """Test that pre-release versions are filtered out."""
166- # Setup - mix of stable and pre-release versions
170+ # Setup - mix of stable and pre-release versions with correct nested structure
167171 mock_response = MagicMock ()
168172 mock_response .json .return_value = {
169173 "modules" : [
170- {"version" : "1.0.0" },
171- {"version" : "1.1.0-beta" },
172- {"version" : "1.2.0" },
173- {"version" : "2.0.0-draft" },
174- {"version" : "2.0.1-draft-addons" }, # Real example from issue #20
175- {"version" : "2.1.0-rc.1" },
176- {"version" : "2.2.0" },
177- {"version" : "3.0.0-alpha" },
174+ {
175+ "versions" : [
176+ {"version" : "1.0.0" },
177+ {"version" : "1.1.0-beta" },
178+ {"version" : "1.2.0" },
179+ {"version" : "2.0.0-draft" },
180+ {"version" : "2.0.1-draft-addons" }, # Real example from issue #20
181+ {"version" : "2.1.0-rc.1" },
182+ {"version" : "2.2.0" },
183+ {"version" : "3.0.0-alpha" },
184+ ]
185+ }
178186 ]
179187 }
180188 mock_response .raise_for_status = MagicMock ()
@@ -186,22 +194,26 @@ async def test_get_module_versions_filters_prerelease(self, terraform_client, mo
186194 "terraform-ibm-modules" , "db2-cloud" , "ibm"
187195 )
188196
189- # Verify - only stable versions returned
190- assert result == ["1.0 .0" , "1.2.0" , "2.2 .0" ]
197+ # Verify - only stable versions returned, sorted descending (latest first)
198+ assert result == ["2.2 .0" , "1.2.0" , "1.0 .0" ]
191199 terraform_client .client .get .assert_called_once_with (
192200 "/modules/terraform-ibm-modules/db2-cloud/ibm/versions"
193201 )
194202
195203 @pytest .mark .asyncio
196204 async def test_get_module_versions_all_prerelease (self , terraform_client , mock_cache ):
197205 """Test behavior when all versions are pre-release."""
198- # Setup - only pre-release versions
206+ # Setup - only pre-release versions with correct nested structure
199207 mock_response = MagicMock ()
200208 mock_response .json .return_value = {
201209 "modules" : [
202- {"version" : "1.0.0-beta" },
203- {"version" : "1.1.0-alpha" },
204- {"version" : "2.0.0-rc.1" },
210+ {
211+ "versions" : [
212+ {"version" : "1.0.0-beta" },
213+ {"version" : "1.1.0-alpha" },
214+ {"version" : "2.0.0-rc.1" },
215+ ]
216+ }
205217 ]
206218 }
207219 mock_response .raise_for_status = MagicMock ()
0 commit comments