Exemple #1
0
 def should_render_all_cards(self):
     self.assertEqual(
         CardList(self.cards).render(), [
             separator, u'Name 2UUU', u'Legendary Creature — Human Wizard',
             u'Text: (3/4) Rules Text (This is just an example.)',
             u'Time Spiral (Rare)', separator, u'Worldspine Wurm 8GGG',
             u'Creature — Wurm',
             u'Text: (15/15) Trample ; When Worldspine Wurm dies, put three 5/5 green',
             u'Wurm creature tokens with trample onto the battlefield. ; When',
             u'Worldspine Wurm is put into a graveyard from anywhere, shuffle it into',
             u'its owner\'s library.', u'Return to Ravnica (Mythic Rare)',
             u'\n2 results found.'
         ])
Exemple #2
0
def lookup_card_(cardname):
    """
    cardname = 'Wasteland'
    """
    print('Lookup cardname = %r' % (cardname,))
    from mtglib.gatherer_request import SearchRequest
    from mtglib.card_extractor import CardExtractor
    from mtglib.card_renderer import CardList
    from mtgmonte import mtgobjs
    #keys = ['block', 'cmc', 'color', 'colourize', 'exact',
    #        'exclude_other_colors', 'exclude_other_types', 'flavor', 'format',
    #        'hidesets', 'json', 'name', 'power', 'random', 'rarity',
    #        'reminder', 'rulings', 'set', 'special', 'text', 'tough', 'type']
    with ut.Timer('Downloading card %s' % (cardname,)):
        request = SearchRequest({'name': cardname, 'exact': True})
        card_source = request.url
        cards = CardExtractor(card_source).cards
    double_sided_cards = {
        'Jace, Vryn\'s Prodigy',
    }
    assert len(cards) != 0, 'no match'
    if len(cards) == 2:
        # check if double sided.
        card = cards[0]
        if card.name in double_sided_cards:
            card.other_side = cards[1]
            cards = [card]
    cards = [card_ for card_ in cards if card_.name == cardname]
    if len(cards) != 1:
        cardlist = CardList(cards)
        cardlist.render()
        print('cards = %r' % (cards,))
        assert len(cards) == 1, 'should only be one card'
    assert len(cards) != 0, 'no match'
    card2 = mtgobjs.Card2()
    card2.__dict__.update(cards[0].__dict__)
    return card2
Exemple #3
0
 def should_remove_empty_json_keys(self):
     cardlist = CardList(self.cards, json=True)
     cards = json.loads(''.join(cardlist.render()))
     self.assertTrue('loyalty' not in cards[0])
Exemple #4
0
 def should_render_json_lists(self):
     cardlist = CardList(self.cards, json=True)
     cards = json.loads(''.join(cardlist.render()))
     self.assertTrue('name' in cards[0])
Exemple #5
0
 def should_give_message_if_no_results(self):
     cardlist = CardList([])
     self.assertEqual(cardlist.render(), ['No results found.'])
Exemple #6
0
 def should_correctly_pluralize_results(self):
     cardlist = CardList([Card(), Card(), Card()])
     self.assertEqual(cardlist.num_results(), '\n3 results found.')
Exemple #7
0
 def should_correctly_singularize_results(self):
     cardlist = CardList([Card()])
     self.assertEqual(cardlist.num_results(), '\n1 result found.')
 def should_remove_empty_json_keys(self):
     cardlist = CardList(self.cards, json=True)
     cards = json.loads(''.join(cardlist.render()))
     self.assertTrue('loyalty' not in cards[0])
 def should_render_json_lists(self):
     cardlist = CardList(self.cards, json=True)
     cards = json.loads(''.join(cardlist.render()))
     self.assertTrue('name' in cards[0])
 def should_give_message_if_no_results(self):
     cardlist = CardList([])
     self.assertEqual(cardlist.render(),
                      ['No results found.'])
 def should_correctly_pluralize_results(self):
     cardlist = CardList([Card(), Card(), Card()])
     self.assertEqual(cardlist.num_results(),
                      '\n3 results found.')
 def should_correctly_singularize_results(self):
     cardlist = CardList([Card()])
     self.assertEqual(cardlist.num_results(),
                      '\n1 result found.')