Skip to content

Commit

Permalink
josuebrunel#39 : Just want to add a couple tests (for my roster and w…
Browse files Browse the repository at this point in the history
…ith multiple players), then will push to integrate branch
  • Loading branch information
peacing committed Aug 4, 2015
1 parent f8436de commit 737dedd
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 20 deletions.
18 changes: 17 additions & 1 deletion fantasy_sport/fantasy_sport.py
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@ def add_player(self, player_keys, team_key, league_key):
yfs.add_player('346.p.9171', '346.l.1328.t.12', ['346.l.1328'])
"""
uri = self._build_uri(None, league_key, sub='transactions')
uri = 'league/{0}'.format(uri)
uri = 'league/{2}'.format(uri)

This comment has been minimized.

Copy link
@josuebrunel

josuebrunel Aug 4, 2015

Not sure about it. You only passed like 1 argument to format, not 3



p1 = Player(player_keys, type='add', destination_team_key=team_key)
Expand All @@ -538,6 +538,22 @@ def add_player(self, player_keys, team_key, league_key):
response = self._post(uri, transaction)
return response

def drop_player(self, player_keys, team_key, league_key):
"""
Drop a player from your team
Three things to specify are player key, team key, league key
yfs.drop_player('346.p.9171', '346.l.1328.t.12', ['346.l.1328'])
"""
uri = self._build_uri(None, league_key, sub='transactions')
uri = 'league/{2}'.format(uri)


p1 = Player(player_keys, type='drop', source_team_key=team_key)
transaction = Transaction('drop', players=[p1])

response = self._post(uri, transaction)
return response




Expand Down
77 changes: 59 additions & 18 deletions fantasy_sport/roster.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ class Base(object):
@abc.abstractmethod
def xml_builder_player(self,):
raise NotImplementedError

@abc.abstractmethod
def xml_builder_player_proposetrade(self,):
raise NotImplementedError

@abc.abstractmethod
def xml_builder_put(self,):
Expand Down Expand Up @@ -123,8 +127,10 @@ def __init__(self, player_key, type=None, position=None,
self.destination_team_key = destination_team_key
self.source_team_key = source_team_key


self.xml_builder_player()
if self.type is 'pending_trade':
self.xml_builder_player_proposetrade()
else:
self.xml_builder_player()

def xml_builder_player(self,):
"""Convert object into a xml object
Expand All @@ -147,9 +153,27 @@ def xml_builder_player(self,):
source_team_key = ctree.SubElement(transaction_data, 'source_team_key')
source_team_key.text = self.source_team_key

#for key in sorted(vars(self).keys()):
#tag = ctree.SubElement(player, key)
#tag.text = vars(self).get(key)
self.xml = player
return self.xml

def xml_builder_player_proposetrade(self,):
"""Convert player object into xml object
"""
player = ctree.Element('player')

player_key = ctree.SubElement(player, 'player_key')
player_key.text = self.player_key

transaction_data = ctree.SubElement(player, 'transaction_data')

type = ctree.SubElement(transaction_data, 'type')
type.text = self.type

source_team_key = ctree.SubElement(transaction_data, 'source_team_key')
source_team_key.text = self.source_team_key

destination_team_key = ctree.SubElement(transaction_data, 'destination_team_key')
destination_team_key.text = self.destination_team_key

self.xml = player
return self.xml
Expand Down Expand Up @@ -240,42 +264,57 @@ def xml_builder_adddrop(self,):
content = ctree.Element('fantasy_content')
transaction = ctree.SubElement(content, 'transaction')

transaction_key = ctree.SubElement(transaction, 'transaction_key')
transaction_key.text = self.transaction_key

type = ctree.SubElement(transaction, 'type')
type.text = self.type

if self.faab_bid:
faab_bid = ctree.SubElement('faab_bid')
faab_bid.text = self.faab_bid

players = ctree.SubElement(transaction, 'players')
for player in self.players :

for player in self.players:
players.append(player.xml)

self.xml = content

def xml_builder_proposetrade(self,):
"""Convert into xml object
"""
content = ctree.Element('fantasy_content')
transaction = ctree.SubElement(content, 'transaction')

transaction_key = ctree.SubElement(transaction, 'transaction_key')
transaction_key.text = self.transaction_key

type = ctree.SubElement(transaction, 'type')
type.text = self.type

trader_team_key = ctree.SubElement(transaction, 'trader_team_key')
trader_team_key.text = self.trader_team_key

tradee_team_key = ctree.SubElement(transaction, 'tradee_team_key')
tradee_team_key.text = self.tradee_team_key

if self.trade_note:
trade_note = ctree.SubElement(transaction, 'trade_note')
trade_note.text = self.trade_note

players = ctree.SubElement(transaction, 'players')
for player in self.players :

for player in self.players:
players.append(player.xml)

self.xml = content

def xml_builder_player(self,):
return None

def xml_builder_player_proposetrade(self,):
return None






def __init__(self, type, transaction_key=None, priority=None, faab_bid=None,
action=None, trade_note=None, voter_team_key=None,
players=None
action=None, trade_note=None, voter_team_key=None, players=None,
trader_team_key=None, tradee_team_key=None
):
"""Initialize a transaction object for PUT functions"""
super(Base, self).__init__()
Expand All @@ -288,6 +327,8 @@ def __init__(self, type, transaction_key=None, priority=None, faab_bid=None,
self.trade_note = trade_note
self.voter_team_key = voter_team_key
self.players=players
self.trader_team_key = trader_team_key
self.tradee_team_key = tradee_team_key

types = {'waiver': self.xml_builder_put, 'pending_trade': self.xml_builder_put,
'add': self.xml_builder_addordrop, 'drop': self.xml_builder_addordrop, 'add/drop': self.xml_builder_adddrop
Expand Down
25 changes: 24 additions & 1 deletion tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,29 @@ def test_add_player(self,):
self.transaction = Transaction('add', players=[self.p1])
expected = b'<fantasy_content><transaction><type>add</type><player><player_key>248.p.522</player_key><transaction_data><type>add</type><destination_team_key>248.l.1328.t.12</destination_team_key></transaction_data></player></transaction></fantasy_content>'
logging.debug(pretty_xml(self.transaction.to_xml()))
self.assertEqual(expected, self.transaction.to_xml())
self.assertEqual(expected, self.transaction.to_xml())

def test_drop_player(self,):
self.p1 = Player('248.p.522', type='drop', source_team_key='248.l.1328.t.12')
self.transaction = Transaction('drop', players=[self.p1])
expected = b'<fantasy_content><transaction><type>drop</type><player><player_key>248.p.522</player_key><transaction_data><type>drop</type><source_team_key>248.l.1328.t.12</source_team_key></transaction_data></player></transaction></fantasy_content>'
logging.debug(pretty_xml(self.transaction.to_xml()))
self.assertEqual(expected, self.transaction.to_xml())

def test_adddrop_player(self,):
self.p1 = Player('248.p.522', type='add', destination_team_key='248.l.1328.t.12')
self.p2 = Player('248.p.523', type='drop', source_team_key='248.l.1328.t.12')
self.transaction = Transaction('add/drop', players=[self.p1, self.p2])
expected = b'<fantasy_content><transaction><type>add/drop</type><players><player><player_key>248.p.522</player_key><transaction_data><type>add</type><destination_team_key>248.l.1328.t.12</destination_team_key></transaction_data></player><player><player_key>248.p.523</player_key><transaction_data><type>drop</type><source_team_key>248.l.1328.t.12</source_team_key></transaction_data></player></players></transaction></fantasy_content>'
logging.debug(pretty_xml(self.transaction.to_xml()))
self.assertEqual(expected, self.transaction.to_xml())

def test_propose_trade(self,):
self.p1 = Player('248.p.4130', type='pending_trade', source_team_key='248.l.55438.t.11', destination_team_key='248.l.55438.t.4')
self.p2 = Player('248.p.2415', type='pending_trade', source_team_key='248.l.55438.t.4', destination_team_key='248.l.55438.t.11')
self.transaction = Transaction('pending_trade', players=[self.p1, self.p2], trader_team_key ='248.l.55438.t.11', tradee_team_key='248.l.55438.t.4', trade_note='Yo yo yo yo yo!!!')
expected = b'<fantasy_content><transaction><type>pending_trade</type><trader_team_key>248.l.55438.t.11</trader_team_key><tradee_team_key>248.l.55438.t.4</tradee_team_key><trade_note>Yo yo yo yo yo!!!</trade_note><players><player><player_key>248.p.4130</player_key><transaction_data><type>pending_trade</type><source_team_key>248.l.55438.t.11</source_team_key><destination_team_key>248.l.55438.t.4</destination_team_key></transaction_data></player><player><player_key>248.p.2415</player_key><transaction_data><type>pending_trade</type><source_team_key>248.l.55438.t.4</source_team_key><destination_team_key>248.l.55438.t.11</destination_team_key></transaction_data></player></players></transaction></fantasy_content>'
logging.debug(pretty_xml(self.transaction.to_xml()))
self.assertEqual(expected, self.transaction.to_xml())


0 comments on commit 737dedd

Please sign in to comment.