def python_minor(args): # pragma: no cover print( pypistats.python_minor( args.package, version=args.version, start_date=args.start_date, end_date=args.end_date, format=args.format, total="daily" if args.daily else ("monthly" if args.monthly else "all"), ))
def python_minor(args: argparse.Namespace) -> None: # pragma: no cover print( pypistats.python_minor( args.package, version=args.version, start_date=args.start_date, end_date=args.end_date, format=args.format, total="daily" if args.daily else ("monthly" if args.monthly else "all"), color=args.color, verbose=args.verbose, ))
def test_python_minor_json(self): # Arrange package = "pip" mocked_url = "https://pypistats.org/api/packages/pip/python_minor" mocked_response = """{ "data": [ {"category": "2.6", "date": "2018-11-01", "downloads": 6863}, {"category": "2.7", "date": "2018-11-01", "downloads": 2001481}, {"category": "3.2", "date": "2018-11-01", "downloads": 9}, {"category": "3.3", "date": "2018-11-01", "downloads": 414}, {"category": "3.4", "date": "2018-11-01", "downloads": 62166}, {"category": "3.5", "date": "2018-11-01", "downloads": 79425}, {"category": "3.6", "date": "2018-11-01", "downloads": 112266}, {"category": "3.7", "date": "2018-11-01", "downloads": 25961}, {"category": "3.8", "date": "2018-11-01", "downloads": 58}, {"category": "null", "date": "2018-11-01", "downloads": 7122} ], "package": "pip", "type": "python_minor_downloads" }""" expected_output = """{ "data": [ {"category": "2.6", "downloads": 6863}, {"category": "2.7", "downloads": 2001481}, {"category": "3.2", "downloads": 9}, {"category": "3.3", "downloads": 414}, {"category": "3.4", "downloads": 62166}, {"category": "3.5", "downloads": 79425}, {"category": "3.6", "downloads": 112266}, {"category": "3.7", "downloads": 25961}, {"category": "3.8", "downloads": 58}, {"category": "null", "downloads": 7122} ], "package": "pip", "type": "python_minor_downloads" }""" # Act with requests_mock.Mocker() as m: m.get(mocked_url, text=mocked_response) output = pypistats.python_minor(package, format="json") # Assert self.assertEqual(json.loads(output), json.loads(expected_output))
def test_python_minor_json(self) -> None: # Arrange package = "pip" mocked_url = "https://pypistats.org/api/packages/pip/python_minor" mocked_response = """{ "data": [ {"category": "2.6", "date": "2018-11-01", "downloads": 6863}, {"category": "2.7", "date": "2018-11-01", "downloads": 2001481}, {"category": "3.2", "date": "2018-11-01", "downloads": 9}, {"category": "3.3", "date": "2018-11-01", "downloads": 414}, {"category": "3.4", "date": "2018-11-01", "downloads": 62166}, {"category": "3.5", "date": "2018-11-01", "downloads": 79425}, {"category": "3.6", "date": "2018-11-01", "downloads": 112266}, {"category": "3.7", "date": "2018-11-01", "downloads": 25961}, {"category": "3.8", "date": "2018-11-01", "downloads": 58}, {"category": "null", "date": "2018-11-01", "downloads": 7122} ], "package": "pip", "type": "python_minor_downloads" }""" expected_output = """{ "data": [ {"category": "2.6", "downloads": 6863}, {"category": "2.7", "downloads": 2001481}, {"category": "3.2", "downloads": 9}, {"category": "3.3", "downloads": 414}, {"category": "3.4", "downloads": 62166}, {"category": "3.5", "downloads": 79425}, {"category": "3.6", "downloads": 112266}, {"category": "3.7", "downloads": 25961}, {"category": "3.8", "downloads": 58}, {"category": "null", "downloads": 7122} ], "package": "pip", "type": "python_minor_downloads" }""" # Act respx.get(mocked_url).respond(content=mocked_response) output = pypistats.python_minor(package, format="json") # Assert assert json.loads(output) == json.loads(expected_output)
def test_python_minor_monthly(self): # Arrange package = "pip" mocked_url = "https://pypistats.org/api/packages/pip/python_minor" mocked_response = """{ "data": [ {"category": "2.6", "date": "2018-11-01", "downloads": 1}, {"category": "2.6", "date": "2018-11-02", "downloads": 2}, {"category": "2.6", "date": "2018-12-11", "downloads": 3}, {"category": "2.6", "date": "2018-12-12", "downloads": 4}, {"category": "2.7", "date": "2018-11-01", "downloads": 10}, {"category": "2.7", "date": "2018-11-02", "downloads": 20}, {"category": "2.7", "date": "2018-12-11", "downloads": 30}, {"category": "2.7", "date": "2018-12-12", "downloads": 40} ], "package": "pip", "type": "python_minor_downloads" }""" expected_output = """{ "data": [ {"category": "2.6", "date": "2018-11", "downloads": 3}, {"category": "2.6", "date": "2018-12", "downloads": 7}, {"category": "2.7", "date": "2018-11", "downloads": 30}, {"category": "2.7", "date": "2018-12", "downloads": 70} ], "package": "pip", "type": "python_minor_downloads" }""" # Act with requests_mock.Mocker() as m: m.get(mocked_url, text=mocked_response) output = pypistats.python_minor(package, total="monthly", format="json") # Assert self.assertEqual(json.loads(output), json.loads(expected_output))
def test_python_minor_monthly(self) -> None: # Arrange package = "pip" mocked_url = "https://pypistats.org/api/packages/pip/python_minor" mocked_response = """{ "data": [ {"category": "2.6", "date": "2018-11-01", "downloads": 1}, {"category": "2.6", "date": "2018-11-02", "downloads": 2}, {"category": "2.6", "date": "2018-12-11", "downloads": 3}, {"category": "2.6", "date": "2018-12-12", "downloads": 4}, {"category": "2.7", "date": "2018-11-01", "downloads": 10}, {"category": "2.7", "date": "2018-11-02", "downloads": 20}, {"category": "2.7", "date": "2018-12-11", "downloads": 30}, {"category": "2.7", "date": "2018-12-12", "downloads": 40} ], "package": "pip", "type": "python_minor_downloads" }""" expected_output = """{ "data": [ {"category": "2.6", "date": "2018-11", "downloads": 3}, {"category": "2.6", "date": "2018-12", "downloads": 7}, {"category": "2.7", "date": "2018-11", "downloads": 30}, {"category": "2.7", "date": "2018-12", "downloads": 70} ], "package": "pip", "type": "python_minor_downloads" }""" # Act respx.get(mocked_url).respond(content=mocked_response) output = pypistats.python_minor(package, total="monthly", format="json") # Assert assert json.loads(output) == json.loads(expected_output)