Test currencyrate with a source argument returns that source's rate.
(node_factory, fake_rateserver)
| 616 | |
| 617 | |
| 618 | def test_currencyrate_source(node_factory, fake_rateserver): |
| 619 | """Test currencyrate with a source argument returns that source's rate.""" |
| 620 | |
| 621 | opts = { |
| 622 | "currencyrate-disable-source": ALL_RESOURCES, |
| 623 | "currencyrate-add-source": [ |
| 624 | f"fast,{fake_rateserver['url']}/fast,price", |
| 625 | f"slow,{fake_rateserver['url']}/slow,price", |
| 626 | ], |
| 627 | } |
| 628 | l1 = node_factory.get_node(options=opts) |
| 629 | |
| 630 | result_fast = l1.rpc.call("currencyrate", ["USD", "fast"]) |
| 631 | LOGGER.info("currencyrate fast: %s", result_fast) |
| 632 | assert result_fast["rate"] == float(fake_rateserver["state"]["fast"]) |
| 633 | |
| 634 | result_slow = l1.rpc.call("currencyrate", ["USD", "slow"]) |
| 635 | LOGGER.info("currencyrate slow: %s", result_slow) |
| 636 | assert result_slow["rate"] == float(fake_rateserver["state"]["slow"]) |
| 637 | |
| 638 | expected_median = ( |
| 639 | fake_rateserver["state"]["fast"] + fake_rateserver["state"]["slow"] |
| 640 | ) / 2 |
| 641 | result_median = l1.rpc.call("currencyrate", ["USD"]) |
| 642 | LOGGER.info("currencyrate median: %s", result_median) |
| 643 | assert result_median["rate"] == float(expected_median) |
| 644 | |
| 645 | |
| 646 | def test_currencyrate_unknown_source(node_factory, fake_rateserver): |