@@ -144,15 +144,54 @@ def test_language_get_concept_code(self):
144144 self .assertEqual (language .concept_code ("concept3" ), "" )
145145 self .assertEqual (language .concept_code ("concept4" ), "line1\n line2" )
146146
147- def test_language_get_concept_comment (self ):
148- """test Language#get_concept_comment"""
149- language = self .dummy_language
150-
151- # Test unknown concept
152- self .assertEqual (language .concept_comment ("12345" ), "" )
153-
154- # Test known concept
155- self .assertEqual (language .concept_comment ("concept1" ), "" )
156- self .assertEqual (language .concept_comment ("concept2" ), "My comment" )
157- self .assertEqual (language .concept_comment ("concept3" ), "" )
158- self .assertEqual (language .concept_comment ("concept4" ), "" )
147+ def test_language_versions (self ):
148+ """test Language#versions"""
149+ language = Language ("python" , "Python" )
150+ versions = language .versions ()
151+ self .assertGreater (len (versions ), 0 )
152+ self .assertIn ("3" , versions )
153+
154+ def test_language_load_filled_concepts (self ):
155+ """test Language#load_filled_concepts"""
156+ language = Language ("python" , "Python" )
157+ # Python 3 has data_types structure
158+ response = language .load_filled_concepts ("data_types" , "3" )
159+ response_json = json .loads (response )
160+ self .assertEqual (response_json ["meta" ]["language" ], "python" )
161+ self .assertEqual (response_json ["meta" ]["structure" ], "data_types" )
162+ self .assertIn ("concepts" , response_json )
163+ # Check if some basic concept exists
164+ self .assertIn ("boolean" , response_json ["concepts" ])
165+
166+ def test_language_load_comparison (self ):
167+ """test Language#load_comparison"""
168+ language = Language ("python" , "Python" )
169+ response = language .load_comparison ("data_types" , "javascript" , "ECMAScript 2023" , "3" )
170+ response_json = json .loads (response )
171+ self .assertEqual (response_json ["meta" ]["language_1" ], "python" )
172+ self .assertEqual (response_json ["meta" ]["language_2" ], "javascript" )
173+ self .assertIn ("concepts1" , response_json )
174+ self .assertIn ("concepts2" , response_json )
175+
176+ def test_metainfo_language_methods (self ):
177+ """test MetaInfo language related methods"""
178+ self .assertEqual (self .metainfo .language_name ("python" ), "Python" )
179+ lang = self .metainfo .language ("python" )
180+ self .assertIsInstance (lang , Language )
181+ self .assertEqual (lang .key , "python" )
182+
183+ def test_metainfo_load_languages (self ):
184+ """test MetaInfo#load_languages"""
185+ structure = self .metainfo .structure ("data_types" )
186+ langs = self .metainfo .load_languages ([("python" , "3" ), ("javascript" , "ECMAScript 2023" )], structure )
187+ self .assertEqual (len (langs ), 2 )
188+ self .assertEqual (langs [0 ].key , "python" )
189+ self .assertEqual (langs [1 ].key , "javascript" )
190+
191+ def test_metainfo_load_languages_missing_structure (self ):
192+ """test MetaInfo#load_languages with missing structure"""
193+ from web .models import MissingStructureError
194+ structure = self .metainfo .structure ("data_types" )
195+ with self .assertRaises (MissingStructureError ):
196+ # python 3 definitely has data_types, but let's try something that doesn't exist
197+ self .metainfo .load_languages ([("python" , "non_existent_version" )], structure )
0 commit comments