Пример #1
0
    def test_get_rate_coingecko(self, mock_api):
        url = RateOracle.coingecko_usd_price_url.format(1, "USD")
        regex_url = re.compile(f"^{url}".replace(".", r"\.").replace("?", r"\?"))
        mock_api.get(regex_url, body=json.dumps(Fixture.CoinGeckoPage1), repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(2, "USD")
        regex_url = re.compile(f"^{url}".replace(".", r"\.").replace("?", r"\?"))
        mock_api.get(regex_url, body=json.dumps(Fixture.CoinGeckoPage2), repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(3, "USD")
        regex_url = re.compile(f"^{url}".replace(".", r"\.").replace("?", r"\?"))
        mock_api.get(regex_url, body=json.dumps(Fixture.CoinGeckoPage3), repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(4, "USD")
        regex_url = re.compile(f"^{url}".replace(".", r"\.").replace("?", r"\?"))
        mock_api.get(regex_url, body=json.dumps(Fixture.CoinGeckoPage4), repeat=True)

        url = RateOracle.coingecko_supported_vs_tokens_url
        regex_url = re.compile(f"^{url}".replace(".", r"\.").replace("?", r"\?"))
        mock_api.get(regex_url, body=json.dumps(Fixture.CoinGeckoVSCurrencies), repeat=True)

        rates = self.async_run_with_timeout(RateOracle.get_coingecko_prices_by_page("USD", 1))
        self._assert_rate_dict(rates)
        rates = self.async_run_with_timeout(RateOracle.get_coingecko_prices("USD"))
        self._assert_rate_dict(rates)
    def test_get_rate_coingecko(self, mock_api):
        url = RateOracle.coingecko_usd_price_url.format(
            "cryptocurrency", 1, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoCryptocurrencyPage1),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "cryptocurrency", 2, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoCryptocurrencyPage2),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "decentralized-exchange", 1, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoDEXPage1),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "decentralized-exchange", 2, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoDEXPage2),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "decentralized-finance-defi", 1, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoDEFIPage1),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "decentralized-finance-defi", 2, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoDEFIPage2),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "smart-contract-platform", 1, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoSmartContractPage1),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "smart-contract-platform", 2, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoSmartContractPage2),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "stablecoins", 1, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoStableCoinsPage1),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "stablecoins", 2, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoStableCoinsPage2),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "wrapped-tokens", 1, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoWrappedTokensPage1),
                     repeat=True)

        url = RateOracle.coingecko_usd_price_url.format(
            "wrapped-tokens", 2, "USD")
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoWrappedTokensPage2),
                     repeat=True)

        url = RateOracle.coingecko_supported_vs_tokens_url
        regex_url = re.compile(f"^{url}".replace(".",
                                                 r"\.").replace("?", r"\?"))
        mock_api.get(regex_url,
                     body=json.dumps(Fixture.CoinGeckoVSCurrencies),
                     repeat=True)

        rates = self.async_run_with_timeout(
            RateOracle.get_coingecko_prices_by_page("USD", 1,
                                                    "cryptocurrency"))
        self._assert_rate_dict(rates)
        rates = self.async_run_with_timeout(
            RateOracle.get_coingecko_prices("USD"))
        self._assert_rate_dict(rates)