def test_three_items(self, mock_fetch_price):
        item_ids = [554, 12345, 54321]
        expected = """fire rune: 15
pickle: 14321
frost dragon bones: 123k"""

        # Provide different return values for fetch_price() every time.
        fetch_price_retvals = {
            54321: ("frost dragon bones", "123k"),
            12345: ("pickle", "14321"),
            554: ("fire rune", "15"),
        }

        def fetch_price_side_effect(item_id):
            return fetch_price_retvals[item_id]

        mock_fetch_price.side_effect = fetch_price_side_effect

        self.assertEqual(multi_fetcher.fetch_prices(item_ids), expected)
 def test_no_items(self, mock_fetch_price):
     self.assertEqual(multi_fetcher.fetch_prices([]), "")
 def test_one_item_fire_rune(self, mock_fetch_price):
     item_ids = [554]
     expected = "fire rune: 15"
     mock_fetch_price.return_value = ("fire rune", "15")
     self.assertEqual(multi_fetcher.fetch_prices(item_ids), expected)
     mock_fetch_price.assert_called_once_with(554)
# Runescape Price Fetcher
# Author: Ryan Moyer

from __future__ import print_function

from multi_fetcher import fetch_prices

import argparse

parser = argparse.ArgumentParser(description='Grabs item ID.')
parser.add_argument('item_ids', metavar='ITEM_ID', type=int, nargs='+', help='the id for an item')
args = parser.parse_args()

print(fetch_prices(args.item_ids))