Пример #1
0
    def __init__(self, app=None, canvas=None, scene=None):
        super(SceneController, self).__init__()
        self.canvas = canvas
        self.scene = scene
        self.app = app
        self.fixtures = []
        self._max_pixels = 0
        self._output_buffer = None
        self.show_center = False
        self._strand_keys = list()
        self._color_mode = self.app.config.get("color_mode")
        self._frame_data = {}
        self.strand_data = {}
        self.times = []
        self.frame_start_time = 0.0
        if self.canvas is not None:
            self.init_view()

        self._fixture_lookup_cache = self.scene.fixture_hierarchy()
        fixture_data = self.scene.get("fixtures", [])
        for fixture_data_item in fixture_data:
            f = Fixture(fixture_data_item, controller=self)
            self._fixture_lookup_cache[f.strand()][f.address()] = f
            self.fixtures.append(f)

        self.create_pixel_array()
 def test_team1_winner(self):
     self.team1 = Team("Team 1", "Edinburgh, Scotland", "Murrayfield",
                       67000, 4, 0, 4, 0, 4, 2)
     self.fixture = Fixture(self.team1, self.team2)
     self.assertEqual(2, self.team1.score)
     self.assertEqual(1, self.team2.score)
     self.assertEqual(self.fixture.team1.team_name,
                      self.fixture.determine_winner(self.team1, self.team2))
class TestTeam(unittest.TestCase):
    def setUp(self):
        self.team1 = Team("Team 1", "Edinburgh, Scotland", "Murrayfield",
                          67000, 4, 0, 4, 0, 4, 1)
        self.team2 = Team("Team 2", "Glasgow, Scotland", "Hampden", 52000, 4,
                          0, 4, 0, 4, 1)
        self.fixture = Fixture(self.team1, self.team2)

# testing that fixture has not yet taken place, no score yet submitted
#    @unittest.skip("Delete this line to run the test")

    def test_determine_fixture_played(self):
        self.assertEqual("Team 1", self.team1.team_name)
        self.assertEqual("Team 2", self.team2.team_name)
        self.assertEqual("{team1.team_name}" + "v" + "{team2.team_name}",
                         self.fixture.setup_fixture(self.team1, self.team2))

# testing function to determine the winner of the fixture/match/game
#    @unittest.skip("Delete this line to run the test")

    def test_no_winner(self):
        self.assertEqual(1, self.team1.score)
        self.assertEqual(1, self.team2.score)
        self.assertEqual(None,
                         self.fixture.determine_winner(self.team1, self.team2))

#    @unittest.skip("Delete this line to run the test")

    def test_team1_winner(self):
        self.team1 = Team("Team 1", "Edinburgh, Scotland", "Murrayfield",
                          67000, 4, 0, 4, 0, 4, 2)
        self.fixture = Fixture(self.team1, self.team2)
        self.assertEqual(2, self.team1.score)
        self.assertEqual(1, self.team2.score)
        self.assertEqual(self.fixture.team1.team_name,
                         self.fixture.determine_winner(self.team1, self.team2))

#    @unittest.skip("Delete this line to run the test")

    def test_team2_winner(self):
        self.team1 = Team("Team 1", "Edinburgh, Scotland", "Murrayfield",
                          67000, 4, 0, 4, 0, 4, 1)
        self.team2 = Team("Team 2", "Glasgow, Scotland", "Hampden", 52000, 4,
                          0, 4, 0, 4, 2)
        self.fixture = Fixture(self.team1, self.team2)
        self.assertEqual(1, self.team1.score)
        self.assertEqual(2, self.team2.score)
        self.assertEqual(self.fixture.team2.team_name,
                         self.fixture.determine_winner(self.team1, self.team2))
Пример #4
0
    def init_view(self):
        self.center_widget = CrosshairWidget(self.canvas, self.scene.center(), "Center", callback=self.on_center_moved)
        self.load_backdrop()
        self.fixtures = []
        fixture_data = self.scene.get("fixtures", [])
        for fixture_data_item in fixture_data:
            fixture = Fixture(fixture_data_item, controller=self)
            self.fixtures.append(fixture)
            self._fixtures_by_strand[fixture.strand()].append(fixture)

        # Sort fixtures by address.
        self.fixtures = sorted(self.fixtures, key=lambda f: f.address())
        for strand in self._fixtures_by_strand:
            self._fixtures_by_strand[strand] = sorted(self._fixtures_by_strand[strand],
                                                      key=lambda f: f.address())

        self.update_canvas()
Пример #5
0
def create_fixture():
    team1 = request.form["team1_id"]
    team2 = request.form["team2_id"]
    team1 = team_repository.select(team1)
    team2 = team_repository.select(team2)
    new_fixture = Fixture(team1, team2)
    fixture_repository.save(new_fixture)
    return redirect("/fixtures")
Пример #6
0
def select(id):
    sql = "SELECT * FROM fixtures WHERE id = %s"
    values = [id]
    result = run_sql(sql, values)[0]
    team1 = team_repository.select(result["team1_id"])
    team2 = team_repository.select(result["team2_id"])
    fixture = Fixture(team1, team2, result['team1_score'],
                      result['team2_score'], id)
    return fixture
Пример #7
0
def update_team(id):
    team1 = request.form["team1"]
    team2 = request.form["team2"]
    # team1.score = request.form["fixture.team1.score"]
    # team2.score = request.form["fixture.team2.score"]

    fixture = Fixture(team1, team2, id)
    fixture_repository.update(fixture)
    return redirect("/fixtures")
Пример #8
0
def create_fixture():
    team1 = request.form["team1"]
    team2 = request.form["team2"]
    fixture = Fixture(team1, team2, id)
    if (fixture.team1 == fixture.team2):
        return redirect("/fixtures")
    else:
        fixture_repository.save(fixture)
        return redirect("/fixtures")
Пример #9
0
def get_fixture(path_to_file) -> []:
    fixture = []
    with open(path_to_file, 'r') as csvfile:
        f_csv = csv.reader(csvfile, delimiter=',')
        next(f_csv)

        for f in f_csv:
            fix = Fixture(date=f[0],local=int(f[1]),visitante=int(f[2]))
            fixture.append(fix)
    return fixture
def select_all():
    fixtures = []
    sql = "SELECT * FROM fixtures"
    results = run_sql(sql)
    for result in results:
        team1 = team_repository.select(result["team1_id"])
        team2 = team_repository.select(result["team2_id"])
        fixture = Fixture(team1, team2, result["id"])
        fixtures.append(fixture)
    return fixtures
Пример #11
0
def select(id):
    fixture = None
    sql = "SELECT * FROM fixtures WHERE id = %s"
    values = [id]
    result = run_sql(sql, values)[0]

    if result is not None:
        playlist = playlist_repo.select(result['playlist_id'])
        possible_game = possible_game_repo.select(result['possible_game_id'])
        fixture = Fixture(playlist, possible_game, result['id'])
    return fixture
Пример #12
0
def select_all():
    fixtures = []

    sql = "SELECT * FROM fixtures"
    results = run_sql(sql)

    for result in results:
        playlist = playlist_repo.select(result['playlist_id'])
        possible_game = possible_game_repo.select(result['possible_game_id'])
        fixture = Fixture(playlist, possible_game, result['id'])
        fixtures.append(fixture)
    return fixtures
Пример #13
0
def update_fixture(id):
    team1_id = request.form["team1_id"]
    team2_id = request.form["team2_id"]

    team1 = team_repository.select(team1_id)
    team2 = team_repository.select(team2_id)

    team1_score = request.form["team1_score"]
    team2_score = request.form["team2_score"]
    
    fixture = Fixture(team1, team2, team1_score, team2_score, id)
    fixture_repository.update(fixture)
    return redirect("/fixtures")
Пример #14
0
 def add_fixture(self):
     fh = self.scene.fixture_hierarchy()
     if fh:
         new_strand = max(fh.keys())
         new_address = max(fh[new_strand].keys()) + 1
     else:
         new_strand = 0
         new_address = 0
     fixture = Fixture(controller=self,
                       strand=new_strand,
                       address=new_address)
     self.scene.add_fixture(fixture)
     self.update_canvas()
     self.create_pixel_array()
Пример #15
0
    def _hydrate(self):
        assert self._controller is not None
        assert self._fixtures is None
        assert self._fixture_hierarchy is None

        if self._data.get("fixtures", None):
            self._fixtures = [
                Fixture(data=fd, controller=self._controller)
                for fd in self._data["fixtures"]
            ]
        else:
            self._fixtures = []

        self._fixture_hierarchy = defaultdict(dict)
        for f in self._fixtures:
            self._fixture_hierarchy[f.strand()][f.address()] = f
Пример #16
0
def show_team_fixtures(id):
    sql = "SELECT * FROM fixtures WHERE team1_id = %s OR team2_id = %s"
    fixtures = []
    values = [id, id]
    results = run_sql(sql, values)

    for result in results:

        # get instance of Team class for the team that matches team1_id
        # get instance of team class for the team matching team2_id
        # create fixture object that has team1, team2, score1 and score2
        # then append to fixtures

        team1 = team_repository.select(result["team1_id"])
        team2 = team_repository.select(result["team2_id"])

        fixture = Fixture(team1, team2, result["team1_score"],
                          result["team2_score"])
        # import pdb; pdb.set_trace()
        fixtures.append(fixture)
    return fixtures
def select(id):
    sql = "SELECT * FROM fixtures WHERE id = %s"
    values = [id]
    result = run_sql(sql, values)[0]
    fixture = Fixture(result["team1_id"], result["team2_id"], result["id"])
    return fixture
 def setUp(self):
     self.team1 = Team("Team 1", "Edinburgh, Scotland", "Murrayfield",
                       67000, 4, 0, 4, 0, 4, 1)
     self.team2 = Team("Team 2", "Glasgow, Scotland", "Hampden", 52000, 4,
                       0, 4, 0, 4, 1)
     self.fixture = Fixture(self.team1, self.team2)
Пример #19
0
import pdb

from models.fixture import Fixture

from models.team import Team

import repositories.fixture_repository as fixture_repository
import repositories.team_repository as team_repository

fixture_repository.delete_all()
team_repository.delete_all()

team1 = Team("Hibs")
team_repository.save(team1)

team2 = Team("Hearts")
team_repository.save(team2)

team3 = Team("Celtic")
team_repository.save(team3)

team4 = Team("GB")
team_repository.save(team4)

fixture1 = Fixture(team1, team2)
fixture_repository.save(fixture1)

fixture2 = Fixture(team3, team4)
fixture_repository.save(fixture2)

pdb.set_trace()
              0)
team_repository.save(team_2)

team_3 = Team("Juventus", "Turin, Italy", "Juventus Stadium", 41000, 4, 0, 4,
              0, 4, 2)
team_repository.save(team_3)

team_4 = Team("Barcelona", "Barcelona, Catalonia, Spain", "Camp Nou", 99000, 4,
              0, 4, 0, 4, 1)
team_repository.save(team_4)

team_5 = Team("AC Milan", "Milan, Italy", "Stadio Giuseppe Meazza (San Siro)",
              80000, 4, 0, 4, 0, 4, 0)
team_repository.save(team_5)

fixture_1 = Fixture(team_1, team_2)
fixture_repository.save(fixture_1)

fixture_2 = Fixture(team_3, team_4)
fixture_repository.save(fixture_2)

fixture_3 = Fixture(team_1, team_3)
fixture_repository.save(fixture_3)

fixture_4 = Fixture(team_2, team_4)
fixture_repository.save(fixture_4)

fixture_5 = Fixture(team_1, team_4)
fixture_repository.save(fixture_5)

fixture_6 = Fixture(team_1, team_5)