@@ -474,3 +474,170 @@ def test_api_exchange_markets():
474474 result = client .exchange_markets (exchange_id = "coinbase" , quotes = "USD" )
475475
476476 assert result == expected
477+
478+
479+ def test_api_search ():
480+ expected = {"currencies" : [{"id" : "btc-bitcoin" , "name" : "Bitcoin" }]}
481+ with requests_mock .mock () as m :
482+ m .get (
483+ "https://api.coinpaprika.com/v1/search?q=btc&c=currencies&limit=5" ,
484+ status_code = 200 ,
485+ json = expected ,
486+ )
487+ result = client .search (q = "btc" , c = "currencies" , limit = 5 )
488+
489+ assert result == expected
490+
491+
492+ def test_api_price_converter ():
493+ expected = {
494+ "base_currency_id" : "btc-bitcoin" ,
495+ "quote_currency_id" : "usd-us-dollars" ,
496+ "amount" : 1337 ,
497+ "price" : 37508969 ,
498+ }
499+ with requests_mock .mock () as m :
500+ m .get (
501+ "https://api.coinpaprika.com/v1/price-converter?base_currency_id=btc-bitcoin"e_currency_id=usd-us-dollars&amount=1337" ,
502+ status_code = 200 ,
503+ json = expected ,
504+ )
505+ result = client .price_converter (
506+ base_currency_id = "btc-bitcoin" ,
507+ quote_currency_id = "usd-us-dollars" ,
508+ amount = 1337 ,
509+ )
510+
511+ assert result == expected
512+
513+
514+ def test_api_ticker ():
515+ expected = {
516+ "id" : "btc-bitcoin" ,
517+ "name" : "Bitcoin" ,
518+ "symbol" : "BTC" ,
519+ "quotes" : {"USD" : {"price" : 28000 }},
520+ }
521+ with requests_mock .mock () as m :
522+ m .get (
523+ "https://api.coinpaprika.com/v1/tickers/btc-bitcoin?quotes=USD" ,
524+ status_code = 200 ,
525+ json = expected ,
526+ )
527+ result = client .ticker (coin_id = "btc-bitcoin" , quotes = "USD" )
528+
529+ assert result == expected
530+
531+
532+ def test_api_platforms ():
533+ expected = ["btc-bitcoin" , "eth-ethereum" , "sol-solana" ]
534+ with requests_mock .mock () as m :
535+ m .get (
536+ "https://api.coinpaprika.com/v1/contracts" ,
537+ status_code = 200 ,
538+ json = expected ,
539+ )
540+ result = client .platforms ()
541+
542+ assert result == expected
543+
544+
545+ def test_api_contracts ():
546+ expected = [
547+ {
548+ "address" : "0xdac17f958d2ee523a2206206994597c13d831ec7" ,
549+ "type" : "ERC20" ,
550+ "id" : "usdt-tether" ,
551+ "active" : True ,
552+ },
553+ ]
554+ with requests_mock .mock () as m :
555+ m .get (
556+ "https://api.coinpaprika.com/v1/contracts/eth-ethereum" ,
557+ status_code = 200 ,
558+ json = expected ,
559+ )
560+ result = client .contracts (platform_id = "eth-ethereum" )
561+
562+ assert result == expected
563+
564+
565+ def test_api_ticker_by_contract ():
566+ expected = {
567+ "id" : "usdt-tether" ,
568+ "name" : "Tether" ,
569+ "symbol" : "USDT" ,
570+ "quotes" : {"USD" : {"price" : 1.0 }},
571+ }
572+ with requests_mock .mock () as m :
573+ m .get (
574+ "https://api.coinpaprika.com/v1/contracts/eth-ethereum/0xdac17f958d2ee523a2206206994597c13d831ec7" ,
575+ status_code = 200 ,
576+ json = expected ,
577+ )
578+ result = client .ticker_by_contract (
579+ platform_id = "eth-ethereum" ,
580+ contract_address = "0xdac17f958d2ee523a2206206994597c13d831ec7" ,
581+ )
582+
583+ assert result == expected
584+
585+
586+ def test_api_historical_by_contract ():
587+ expected = [
588+ {"timestamp" : "2024-01-01T00:00:00Z" , "price" : 1.0 , "volume_24h" : 50000000000 },
589+ ]
590+ with requests_mock .mock () as m :
591+ m .get (
592+ "https://api.coinpaprika.com/v1/contracts/eth-ethereum/0xdac17f958d2ee523a2206206994597c13d831ec7/historical?start=2024-01-01" ,
593+ status_code = 200 ,
594+ json = expected ,
595+ )
596+ result = client .historical_by_contract (
597+ platform_id = "eth-ethereum" ,
598+ contract_address = "0xdac17f958d2ee523a2206206994597c13d831ec7" ,
599+ start = "2024-01-01" ,
600+ )
601+
602+ assert result == expected
603+
604+
605+ def test_api_coin_mappings ():
606+ expected = [
607+ {"id" : "btc-bitcoin" , "coingecko" : "bitcoin" , "coinmarketcap" : 1 },
608+ ]
609+ with requests_mock .mock () as m :
610+ m .get (
611+ "https://api.coinpaprika.com/v1/coins/mappings" ,
612+ status_code = 200 ,
613+ json = expected ,
614+ )
615+ result = client .coin_mappings ()
616+
617+ assert result == expected
618+
619+
620+ def test_api_key_info ():
621+ expected = {"plan" : "free" , "usage" : {"current_month" : {"requests" : 500 }}}
622+ with requests_mock .mock () as m :
623+ m .get (
624+ "https://api.coinpaprika.com/v1/key/info" ,
625+ status_code = 200 ,
626+ json = expected ,
627+ )
628+ result = client .key_info ()
629+
630+ assert result == expected
631+
632+
633+ def test_api_changelog_ids ():
634+ expected = ["btc-bitcoin" , "eth-ethereum" ]
635+ with requests_mock .mock () as m :
636+ m .get (
637+ "https://api.coinpaprika.com/v1/changelog/ids" ,
638+ status_code = 200 ,
639+ json = expected ,
640+ )
641+ result = client .changelog_ids ()
642+
643+ assert result == expected
0 commit comments