Skip to content

Commit

Permalink
fixed tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Timon Tschanz committed Jul 6, 2012
1 parent 8071942 commit c007b89
Show file tree
Hide file tree
Showing 14 changed files with 199 additions and 144 deletions.
28 changes: 22 additions & 6 deletions ftw/footballchallenge/testing.py
@@ -1,7 +1,14 @@
from ftw.footballchallenge import Base
from plone.testing import Layer
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.orm import sessionmaker
from z3c.saconfig.zcml import engine, session
from zope.configuration import xmlconfig
from z3c.saconfig import named_scoped_session
from StringIO import StringIO
import z3c.saconfig
from z3c.saconfig.interfaces import IEngineFactory
from zope import component


class DatabaseLayer(Layer):
Expand All @@ -12,6 +19,7 @@ def __init__(self, *args, **kwargs):
self._session = None

def testSetUp(self):
xmlconfig.XMLConfig('meta.zcml', z3c.saconfig)()
self.disconnect()
self.get_connection()

Expand All @@ -20,11 +28,15 @@ def testTearDown(self):

def get_connection(self):
if not self._engine:
self._engine = create_engine('sqlite://', encoding='utf-8')

xmlconfig.xmlconfig(StringIO("""
<configure xmlns="http://namespaces.zope.org/db">
<engine name="footballchallenge.db" url="sqlite:///:memory:"
/>
</configure>"""))
Factory = component.getUtility(IEngineFactory, name="footballchallenge.db")
self._engine = Factory()
Base.metadata.bind = self._engine
Base.metadata.create_all()

return self._engine

def disconnect(self):
Expand All @@ -34,8 +46,12 @@ def disconnect(self):
@property
def session(self):
if not self._session:
self._session = scoped_session(sessionmaker(
bind=self.get_connection()))
xmlconfig.xmlconfig(StringIO("""
<configure xmlns="http://namespaces.zope.org/db">
<session name="footballchallenge" engine="footballchallenge.db" />
</configure>"""))

self._session = named_scoped_session("footballchallenge")

return self._session

Expand Down
22 changes: 14 additions & 8 deletions ftw/footballchallenge/tests/test_cards.py
Expand Up @@ -8,7 +8,7 @@
from datetime import datetime, date, timedelta


class TestGoalsModel(unittest2.TestCase):
class TestCardsModel(unittest2.TestCase):

layer = DATABASE_LAYER

Expand All @@ -20,25 +20,31 @@ def session(self):
def test_creation(self):
event1 = Event('TheEvent', date.today() + timedelta(days=1))
self.session.add(event1)
nation1 = Nation('Nation1')
# self.layer.commit()
event1 = self.session.query(Event).one()
nation1 = Nation('Nation1', event1.id_, 'SWE')
self.session.add(nation1)
nation2 = Nation('Nation2')
nation2 = Nation('Nation2', event1.id_, 'GBR')
self.session.add(nation2)
nations = self.session.query(Nation).all()
event = self.session.query(Event).one()
game = Game(nations[0].id_, nations[1].id_, datetime.now(), event.id_, 3, 0)
game = Game(datetime.now(), event.id_, 'group1', nation1_id=nations[0].id_, nation2_id=nations[1].id_)
game.score_nation1 = 3
game.score_nation2 = 0
self.session.add(game)
self.layer.commit()
# self.layer.commit()
nations = self.session.query(Nation).all()
player1 = Player('Freddy', 'Midfield', nations[0].id_)
event1 = self.session.query(Event).one()

player1 = Player('Freddy', 'Midfield', nations[0].id_, event1.id_)
self.session.add(player1)
self.layer.commit()
# self.layer.commit()

game = self.session.query(Game).one()
player1 = self.session.query(Player).one()
card1 = Card(player1.id_, game.id_, 'Red')
self.session.add(card1)
self.layer.commit()
# self.layer.commit()
cards = self.session.query(Card).all()
self.assertEqual(len(cards),1)
self.assertEqual(cards[0].id_, 1)
Expand Down
2 changes: 1 addition & 1 deletion ftw/footballchallenge/tests/test_event.py
Expand Up @@ -14,7 +14,7 @@ def session(self):
def test_creation(self):
event1 = Event('TheEvent', date.today()+timedelta(days=1))
self.session.add(event1)
self.layer.commit()
# self.layer.commit()

events = self.session.query(Event).all()
self.assertEquals(len(events), 1)
Expand Down
62 changes: 37 additions & 25 deletions ftw/footballchallenge/tests/test_game.py
Expand Up @@ -20,61 +20,73 @@ def session(self):
def test_creation(self):
event1 = Event('TheEvent', date.today()+timedelta(days=1))
self.session.add(event1)
nation1 = Nation('Nation1')
# self.layer.commit()
event1 = self.session.query(Event).one()
nation1 = Nation('Nation1', event1.id_, 'SWE')
self.session.add(nation1)
nation2 = Nation('Nation2')
nation2 = Nation('Nation2', event1.id_, 'GBR')
self.session.add(nation2)
self.layer.commit()
# self.layer.commit()
nations = self.session.query(Nation).all()
event = self.session.query(Event).one()
game = Game(nations[0].id_, nations[1].id_, datetime.now(), event.id_, 3, 0)
game = Game(datetime.now(), event.id_,'group1',nation1_id=nations[0].id_, nation2_id=nations[1].id_)
game.nation1_score = 3
game.nation2_score = 0
self.session.add(game)
self.layer.commit()

# self.layer.commit()
games = self.session.query(Game).all()

self.assertEqual(len(games), 1)
self.assertEqual(games[0].__repr__(), '<Game Nation1 vs. Nation2>')
self.assertEqual(games[0].__repr__(), '<Game SWE-GBR>')

def test_mtom_nations(self):
event1 = Event('TheEvent')
self.session.add(event1)
nation1 = Nation('Nation1')
event1 = Event('TheEvent', date.today()+timedelta(days=1))
self.session.add(event1)
# self.layer.commit()
event1 = self.session.query(Event).one()
nation1 = Nation('Nation1', event1.id_, 'SWE')
self.session.add(nation1)
nation2 = Nation('Nation2')
nation2 = Nation('Nation2', event1.id_, 'GBR')
self.session.add(nation2)
self.layer.commit()
# self.layer.commit()
nations = self.session.query(Nation).all()
event = self.session.query(Event).one()
game = Game(nations[0].id_, nations[1].id_, datetime.now(), event.id_, 3, 0)
game = Game(datetime.now(), event.id_,'group1', nation1_id=nations[0].id_, nation2_id=nations[1].id_)
game.nation1_score = 3
game.nation2_score = 0
self.session.add(game)
self.layer.commit()
# self.layer.commit()

games = self.session.query(Game).all()
nations = self.session.query(Nation).all()
self.assertEqual(games[0].nation1, nations[0])
self.assertEqual(games[0].nation2, nations[1])

def test_mtom_players(self):
event1 = Event('TheEvent')
self.session.add(event1)
nation1 = Nation('Nation1')
event1 = Event('TheEvent', date.today()+timedelta(days=1))
self.session.add(event1)
# self.layer.commit()
event1 = self.session.query(Event).one()
nation1 = Nation('Nation1', event1.id_, 'SWE')
self.session.add(nation1)
nation2 = Nation('Nation2')
nation2 = Nation('Nation2', event1.id_, 'GBR')
self.session.add(nation2)
self.layer.commit()
# self.layer.commit()
nations = self.session.query(Nation).all()
event = self.session.query(Event).one()
game = Game(nations[0].id_, nations[1].id_, datetime.now(), event.id_, 3, 0)
game = Game(datetime.now(), event.id_,'group1', nation1_id=nations[0].id_, nation2_id=nations[1].id_)
game.nation1_score = 3
game.nation2_score = 0
self.session.add(game)
self.layer.commit()

# self.layer.commit()
event1 = self.session.query(Event).one()
game = self.session.query(Game).one()
nations = self.session.query(Nation).all()
player1 = Player('Freddy', 'midfield', nations[0].id_)
player2 = Player('Hans', 'defence', nations[0].id_)
player1 = Player('Freddy', 'midfield', nations[0].id_, event1.id_)
player2 = Player('Hans', 'defence', nations[0].id_, event1.id_)
game.players.append(player1)
game.players.append(player2)
self.layer.commit()
# self.layer.commit()
game = self.session.query(Game).one()
players = self.session.query(Player).all()
self.assertEqual(len(game.players), 2)
Expand Down
26 changes: 16 additions & 10 deletions ftw/footballchallenge/tests/test_goals.py
Expand Up @@ -7,6 +7,8 @@
from datetime import datetime
import unittest2
from datetime import date, timedelta
import transaction


class TestGoalsModel(unittest2.TestCase):

Expand All @@ -18,31 +20,35 @@ def session(self):


def test_creation(self):
event1 = Event('TheEvent', date.today()+ timedelta(days=1))
self.session.add(event1)
nation1 = Nation('Nation1')
event1 = Event('TheEvent', date.today()+timedelta(days=1))
self.session.add(event1)
# self.layer.commit()
event1 = self.session.query(Event).one()
nation1 = Nation('Nation1', event1.id_, 'SWE')
self.session.add(nation1)
nation2 = Nation('Nation2')
nation2 = Nation('Nation2', event1.id_, 'GBR')
self.session.add(nation2)
self.layer.commit()

nations = self.session.query(Nation).all()
event = self.session.query(Event).one()
game = Game(nations[0].id_, nations[1].id_, datetime.now(), event.id_, 3, 0)
game = Game(datetime.now(), event.id_,'group1', nation1_id=nations[0].id_, nation2_id=nations[1].id_)
game.nation1_score = 3
game.nation2_score = 0
self.session.add(game)
self.layer.commit()
# self.layer.commit()

event = self.session.query(Event).one()
nation = self.session.query(Nation).first()
player1 = Player('Freddy', 'Midfield', nation.id_)
player1 = Player('Freddy', 'Midfield', nation.id_, event.id_)
self.session.add(player1)
self.layer.commit()
# self.layer.commit()

player1 = self.session.query(Player).one()
game = self.session.query(Game).one()
game.players.append(player1)
goal1 = Goal(player1.id_, game.id_, False)
self.session.add(goal1)
self.layer.commit()
# self.layer.commit()
player1 = self.session.query(Player).one()
goals = self.session.query(Goal).all()
self.assertEqual(len(goals),1)
Expand Down
24 changes: 0 additions & 24 deletions ftw/footballchallenge/tests/test_import.py

This file was deleted.

4 changes: 2 additions & 2 deletions ftw/footballchallenge/tests/test_league.py
Expand Up @@ -16,14 +16,14 @@ def test_creation(self):

event1 = Event('TheEvent', date.today()+timedelta(days=1))
self.session.add(event1)
self.layer.commit()
# self.layer.commit()
myevent = self.session.query(Event).one()
# can't take the event directly because it's not assigned to a session.
# Without session sqlalchemy cant get any information

league1 = League('TheLeague', myevent.id_)
self.session.add(league1)
self.layer.commit()
# self.layer.commit()

leagues = self.session.query(League).all()
self.assertEquals(len(leagues), 1)
Expand Down
41 changes: 26 additions & 15 deletions ftw/footballchallenge/tests/test_log.py
Expand Up @@ -10,9 +10,9 @@
from datetime import datetime
import unittest2
from datetime import date, timedelta
from ftw.footballchallenge.Teams_Players import Teams_Players


class TestGoalsModel(unittest2.TestCase):
class TestLogModel(unittest2.TestCase):

layer = DATABASE_LAYER

Expand All @@ -24,30 +24,39 @@ def session(self):
def test_creation(self):
event = Event('TheEvent', date.today()+timedelta(days=1))
self.session.add(event)
nation1 = Nation('Nation1')
# self.layer.commit()
event = self.session.query(Event).one()
nation1 = Nation('Nation1', event.id_, 'SWE')
self.session.add(nation1)
nation2 = Nation('Nation2')
nation2 = Nation('Nation2', event.id_, 'GBR')
self.session.add(nation2)
nation3 = Nation('Nation3')
nation3 = Nation('Nation3', event.id_, 'FRA')
self.session.add(nation3)
team1 = Team('TheTeam', 'testi.testmann')
self.session.add(team1)
self.layer.commit()
# self.layer.commit()

nations = self.session.query(Nation).all()
event = self.session.query(Event).one()
game = Game(nations[0].id_, nations[1].id_, datetime.now(), event.id_, '3:0')
game2 = Game(nations[0].id_, nations[2].id_, datetime.now(), event.id_, '0:1')
game = Game(datetime.now(), event.id_,'group1', nation1_id=nations[0].id_, nation2_id=nations[1].id_)
game.score_nation1 = 3
game.score_nation2 = 0
game2 = Game(datetime.now(), event.id_,'group1', nation1_id=nations[0].id_, nation2_id=nations[2].id_)
game2.score_nation1 = 0
game2.score_nation2 = 1
self.session.add(game)
self.session.add(game2)
self.layer.commit()
# self.layer.commit()

team = self.session.query(Team).first()
nation = self.session.query(Nation).first()
player1 = Player('Freddy', 'midfield', nation.id_)
team.players.append(player1)
event = self.session.query(Event).one()
player1 = Player('Freddy', 'midfield', nation.id_, event.id_)
self.session.add(player1)
self.layer.commit()
# self.layer.commit()
team = self.session.query(Team).first()
player1 = self.session.query(Player).first()
team.players.append(Teams_Players(team.id_, player1, is_starter=True))

player1 = self.session.query(Player).one()
game = self.session.query(Game).all()
Expand All @@ -57,13 +66,15 @@ def test_creation(self):
self.session.add(goal1)
card1 = Card(player1.id_, game[0].id_, 'Yellow')
self.session.add(card1)
self.layer.commit()
# self.layer.commit()
player1 = self.session.query(Player).one()
log = player1.get_log(self.session)
log = player1.get_log()
goal = self.session.query(Goal).first()
card = self.session.query(Card).first()
self.assertEqual(len(log), 4)
self.assertEqual(log[0][0], card)
self.assertEqual(log[1][0], goal)
self.assertEqual(log[3][1], 4)
self.assertEqual(log[2][1], 4)
self.assertEqual(log[3][1], -2)

team = self.session.query(Team).one()

0 comments on commit c007b89

Please sign in to comment.