File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66import tarfile
77import tempfile
88from typing import Dict , List , Set , Tuple
9- import requests
9+ import json
1010
1111# third party imports
1212from loguru import logger
13- from bs4 import BeautifulSoup
13+ import requests
1414
1515# project imports
1616from hashtheplanet .sql .db_connector import Hash
@@ -34,22 +34,8 @@ def retrieve_versions(npm_module_name: str) -> Set[VersionName]:
3434 """
3535 This method retrieves npm module versions.
3636 """
37- page = requests .get (f"https://www.npmjs.com/package/{ npm_module_name } ?activeTab=versions" , timeout = 10 )
38- soup = BeautifulSoup (page .content , "html.parser" )
39- versions = set ()
40-
41- table = soup .find ('div' , attrs = {'id' :'tabpanel-versions' })
42-
43- table_body_version_elements = list (table .find_all ())[0 ]
44-
45- version_rows = table_body_version_elements .find_all ("li" )
46-
47- for row in list (version_rows ):
48- version = row .find ("a" )
49- if version is None :
50- continue
51- versions .add (version .get_text ())
52- return versions
37+ page = requests .get (f"https://registry.npmjs.org/{ npm_module_name } " , timeout = 10 )
38+ return set (json .loads (page .content )["versions" ])
5339
5440 @staticmethod
5541 def save_tar_to_disk (file_path : str , npm_module_name : str , version : str ):
Original file line number Diff line number Diff line change @@ -19,27 +19,12 @@ def test_retrieve_versions():
1919 class MockedPage ():
2020 def __init__ (self ) -> None :
2121 self .content = """
22- <html>
23- <head><title></title></head>
24- <body>
25- <div id="tabpanel-versions">
26- <div>
27- <div></div>
28- <h3></h3>
29- <ul><li></li></ul>
30- <ul>
31- <li></li>
32- <li><a>1.0.1</a></li>
33- <li><a>1.0.2</a></li>
34- <li><a>1.0.3</a></li>
35- </ul>
36- </div>
37- <div></div>
38- </div>
39- </body></html>
22+ {
23+ "versions": ["1.0.1", "1.0.2", "1.0.3"]
24+ }
4025 """
4126 def mocked_get_request (url : str , * args , ** kwargs ):
42- assert url == f"https://www .npmjs.com/package/ { npm_module_name } ?activeTab=versions "
27+ assert url == f"https://registry .npmjs.org/ { npm_module_name } "
4328 return MockedPage ()
4429
4530 with mock .patch ("requests.get" , MagicMock (side_effect = mocked_get_request )):
You can’t perform that action at this time.
0 commit comments