def players_upload(): f = request.files['players_file'] if f.filename.endswith('.csv'): players = Players.from_csv(f) else: players = Players.from_xls(f.read()) db.import_players(players, delete=True) flash("Players imported.") return redirect(url_for('players'))
def test_from_csv(self): players = Players.from_csv( StringIO( "\n".join( ["name,team,1A,1B,2A,2B", "Gary Gygax,TSR,G,,G,", "Dave Arneson,TSR,P,,P,", "Jane Bloggs,,,X,,X"] ) ) ) self.assertEqual( list(players), [ Player("Gary Gygax", "TSR", {"1A": "G", "2A": "G"}), Player("Dave Arneson", "TSR", {"1A": "P", "2A": "P"}), Player("Jane Bloggs", None, {"1B": "X", "2B": "X"}), ], )
def test_from_imperfect_csv(self): players = Players.from_csv( StringIO( "\n".join( [ "", "Name,Team,First,Last,1a,1b,2a,2b", "Gary Gygax,TSR,Gary,Gygax,G,,g,", "Dave Arneson,TSR,Dave,Arneson,P,,p,", "Jane Bloggs,,Jane,Bloggs,,X,,x", ] ) ) ) self.assertEqual( list(players), [ Player("Gary Gygax", "TSR", {"1a": "G", "2a": "G"}), Player("Dave Arneson", "TSR", {"1a": "P", "2a": "P"}), Player("Jane Bloggs", None, {"1b": "X", "2b": "X"}), ], )