Example #1
0
    def setUp(self):
        self.team_1 = Team(
            "France", {
                "played": 1,
                "won": 0,
                "drawn": 1,
                "lost": 0,
                "for": 2,
                "against": 2,
                "difference": 0,
                "points": 1,
                "rank": None
            })
        self.team_2 = Team(
            "Germany", {
                "played": 1,
                "won": 0,
                "drawn": 1,
                "lost": 0,
                "for": 2,
                "against": 2,
                "difference": 0,
                "points": 1,
                "rank": None
            })

        self.match_1 = Match("1", datetime.datetime(2016, 6, 10, 20, 0),
                             "Stade de France", "A", self.team_1, self.team_2)
        self.match_2 = Match("Round of 16",
                             datetime.datetime(2016, 6, 25, 14,
                                               0), "Parc des Princes", None,
                             self.team_1, self.team_2)
    def test_eventteams_unknown(self):
        self.teams_auth.put()

        team_list = ['frc254', 'frc971', 'frc604']
        request_body = json.dumps(team_list)

        # Insert teams into db, otherwise they won't get added (see 072058b)
        Team(id='frc254', team_number=254).put()
        Team(id='frc971', team_number=971).put()

        request_path = '/api/trusted/v1/event/2014casj/team_list/update'
        sig = md5.new('{}{}{}'.format('321tEsTsEcReT', request_path, request_body)).hexdigest()
        response = self.testapp.post(request_path, request_body, headers={'X-TBA-Auth-Id': 'tEsT_id_0', 'X-TBA-Auth-Sig': sig}, expect_errors=True)

        self.assertEqual(response.status_code, 200)

        db_eventteams = EventTeam.query(EventTeam.event == self.event.key).fetch(None)
        self.assertEqual(len(db_eventteams), 2)
        self.assertTrue('2014casj_frc254' in [et.key.id() for et in db_eventteams])
        self.assertTrue('2014casj_frc971' in [et.key.id() for et in db_eventteams])
        self.assertTrue('2014casj_frc604' not in [et.key.id() for et in db_eventteams])

        team_list = ['frc254', 'frc100']
        request_body = json.dumps(team_list)

        sig = md5.new('{}{}{}'.format('321tEsTsEcReT', request_path, request_body)).hexdigest()
        response = self.testapp.post(request_path, request_body, headers={'X-TBA-Auth-Id': 'tEsT_id_0', 'X-TBA-Auth-Sig': sig}, expect_errors=True)

        self.assertEqual(response.status_code, 200)

        db_eventteams = EventTeam.query(EventTeam.event == self.event.key).fetch(None)
        self.assertEqual(len(db_eventteams), 1)
        self.assertTrue('2014casj_frc254' in [et.key.id() for et in db_eventteams])
        self.assertTrue('2014casj_frc100' not in [et.key.id() for et in db_eventteams])
Example #3
0
    def setUp(self):
        app = webapp2.WSGIApplication([webapp2.Route(r'/<page_num:([0-9]*)>', ApiTeamListController, methods=['GET'])], debug=True)
        self.testapp = webtest.TestApp(app)

        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_urlfetch_stub()
        self.testbed.init_memcache_stub()
        self.testbed.init_taskqueue_stub(root_path=".")

        self.team1 = Team(
                id="frc123",
                name="SomeName",
                team_number=123,
                nickname="SomeNickname",
                address="San Jose, CA, USA",
                website="www.website.com",
        )

        self.team2 = Team(
                id="frc4567",
                name="SomeName",
                team_number=4567,
                nickname="SomeNickname",
                address="San Jose, CA, USA",
                website="www.website.com",
        )

        self.team1.put()
        self.team2.put()
Example #4
0
    def setUp(self):
        team_1 = Team("Barcelona", 27)
        team_2 = Team("Real Madrid", 24)
        self.teams = [team_1, team_2]

        self.player_1 = Player("Hazard", "Real Madrid", "Forward", 12, 8, 0, 0)
        self.player_2 = Player("Rodrygo", "Real Madrid", "Forward", 4, 9, 0, 0)
 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))
Example #6
0
def prepare_teams():
    team1_as_npc = False
    team1 = Team('Player 1', team1_as_npc)
    answer = ''
    while answer not in ['n', 'p']:
        answer = input('Wanna fight with NPC [n/N] or other player [p/P]? ').lower().strip()
    team2 = Team(name='Player 2' if answer == 'p' else 'CPU',
                 npc=False if answer == 'p' else True)
    print()
    return team1, team2
Example #7
0
 def test_team_ordering(self):
     team_a = Team("Alpha 0")
     team_b = Team("Beta 0")
     # Same score, alphabetical ordering
     assert team_a < team_b
     team_b.name = "Active"
     assert not team_a < team_b
     # Different score means score based ordering
     team_b.score = 1
     assert not team_a < team_b
Example #8
0
 def setUp(self):
     self.game = Game(
         "12/07/2021",
         "Peffermill",
         1,
         2,
         1,
         1,
     )
     self.team_1 = Team("Grange", "Nike")
     self.team_2 = Team("Edinburgh Uni", "Addias")
Example #9
0
    def setUp(self):
        self.team_1 = Team("France")
        self.team_1.group_info = {
            "played": 1,
            "won": 0,
            "drawn": 1,
            "lost": 0,
            "for": 2,
            "against": 2,
            "difference": 0,
            "points": 1,
            "rank": None
        }
        self.team_2 = Team("Germany")
        self.team_2.group_info = {
            "played": 1,
            "won": 0,
            "drawn": 1,
            "lost": 0,
            "for": 2,
            "against": 2,
            "difference": 0,
            "points": 1,
            "rank": None
        }
        self.team_3 = Team("Hungary")
        self.team_3.group_info = {
            "played": 1,
            "won": 0,
            "drawn": 0,
            "lost": 1,
            "for": 1,
            "against": 3,
            "difference": -2,
            "points": 0,
            "rank": None
        }
        self.team_4 = Team("Portugal")
        self.team_4.group_info = {
            "played": 1,
            "won": 1,
            "drawn": 0,
            "lost": 0,
            "for": 3,
            "against": 1,
            "difference": 2,
            "points": 3,
            "rank": None
        }

        self.group_1 = Group("F")
        self.group_1.teams = [
            self.team_1, self.team_2, self.team_3, self.team_4
        ]
Example #10
0
 def test_game_result_ordering(self):
     game = Game()
     team_a = Team("A 0")
     team_b = Team("B 0")
     team_c = Team("c 0")
     team_a.score = 0
     team_b.score = 3
     team_c.score = 3
     # Ensure team ordering follows through to team list sorting
     game.teams = {"A": team_a, "B": team_b, "c": team_c}
     assert str(game.results()) == str([team_b, team_c, team_a])
     team_b.name = "d"
     game.teams["B"].name = "d"
     assert str(game.results()) == str([team_c, team_b, team_a])
    def setUp(self):
        self.policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy(
            probability=1)
        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub(consistency_policy=self.policy)
        self.testbed.init_memcache_stub()
        self.testbed.init_user_stub()
        self.testbed.init_urlfetch_stub()
        ndb.get_context().clear_cache(
        )  # Prevent data from leaking between tests

        app = webapp2.WSGIApplication([
            RedirectRoute(r'/suggest/cad/review',
                          SuggestDesignsReviewController,
                          'review-designs',
                          strict_slash=True),
            RedirectRoute(r'/suggest/review',
                          SuggestReviewHomeController,
                          'review-home',
                          strict_slash=True),
        ],
                                      debug=True)
        self.testapp = webtest.TestApp(app)

        self.team = Team(
            id="frc1124",
            team_number=1124,
        )
        self.team.put()
Example #12
0
def _upload_stats(team_name, stats):
    query = Team.all()
    query.filter('name =', team_name)
    result = query.fetch(1)

    if len(result) > 0:
        for team in result:
            team.year = Const.LAST_YEAR
            team.offense_passing = stats['offense']['pass']
            team.offense_rushing = stats['offense']['rush']
            team.offense_first_down = stats['offense']['first_down']
            team.defense_passing = stats['defense']['pass']
            team.defense_rushing = stats['defense']['rush']
            team.defense_first_down = stats['defense']['first_down']

            team.put()
    else:
        team = Team(name=team_name,
                    year=Const.LAST_YEAR,
                    offense_passing=stats['offense']['pass'],
                    offense_rushing=stats['offense']['rush'],
                    offense_first_down=stats['offense']['first_down'],
                    defense_passing=stats['defense']['pass'],
                    defense_rushing=stats['defense']['rush'],
                    defense_first_down=stats['defense']['first_down'])

        team.put()
Example #13
0
 def test_team_variables(self):
     team = Team("A 1")
     # initialise a team with name and latest_score but 0 starting score
     assert team.name is "A"
     assert team.latest is 1
     assert team.score is 0
     del team
Example #14
0
    async def organize(self,
                       ctx,
                       quiz_type: str = None,
                       team_size: str = None):
        if ctx.channel.name != text(CHANNEL_SETUP):
            return

        if quiz_type not in ['normal', 'jeopardy', 'only connect']:
            quiz_type = 'normal'

        if not team_size:
            team_size = 2

        team_size = min(max(int(team_size), 2), 8)

        self._quiz = Quiz(quiz_type, ctx.message.author, team_size)
        self._quiz_message = await ctx.send(self._quiz.organization_text())

        await self._quiz_message.add_reaction(EMOJI_OK)
        await self._quiz_message.add_reaction(EMOJI_ACCEPT)
        await self._quiz_message.add_reaction(EMOJI_DECLINE)

        try:
            for team_id in range(1, team_size + 1):
                role = await self._management.get_or_create_role('Team ' +
                                                                 str(team_id))
                team = Team(role, team_id)
                self._quiz.add_team(team)
                await self._quiz_message.add_reaction(EMOJI_TEAM[team_id - 1])
        except Exception as e:
            print(e)

        await ctx.message.delete()
    def get(self, event_key):
        datafeed = DatafeedUsfirst()

        event = Event.get_by_id(event_key)
        new_awards = AwardManipulator.createOrUpdate(datafeed.getEventAwards(event))
        if new_awards is None:
            new_awards = []
        elif type(new_awards) != list:
            new_awards = [new_awards]

        # create EventTeams
        team_ids = set()
        for award in new_awards:
            for team in award.team_list:
                team_ids.add(team.id())
        teams = TeamManipulator.createOrUpdate([Team(
            id=team_id,
            team_number=int(team_id[3:]))
            for team_id in team_ids])
        if teams:
            if type(teams) is not list:
                teams = [teams]
            event_teams = EventTeamManipulator.createOrUpdate([EventTeam(
                id=event_key + "_" + team.key.id(),
                event=event.key,
                team=team.key,
                year=event.year)
                for team in teams])

        template_values = {
            'awards': new_awards,
        }

        path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_awards_get.html')
        self.response.out.write(template.render(path, template_values))
Example #16
0
    def getEventTeams(self, year, first_eid):
        """
        Returns a list of team_numbers attending a particular Event
        """
        if type(year) is not int:
            raise TypeError("year must be an integer")

        teams = []
        seen_teams = set()
        for page in range(
                8
        ):  # Ensures this won't loop forever. 8 pages should be plenty.
            url = self.EVENT_TEAMS_URL_PATTERN % (first_eid)
            if page != 0:
                url += '&page=%s' % page
            partial_teams, more_pages = self.parse(url,
                                                   UsfirstEventTeamsParser)
            teams.extend(partial_teams)

            partial_seen_teams = set(
                [team['team_number'] for team in partial_teams])
            new_teams = partial_seen_teams.difference(seen_teams)
            if (not more_pages) or (new_teams == set()):
                break

            seen_teams = seen_teams.union(partial_seen_teams)

        return [
            Team(id="frc%s" % team.get("team_number", None),
                 first_tpid=team.get("first_tpid", None),
                 first_tpid_year=year,
                 team_number=team.get("team_number", None)) for team in teams
        ]
Example #17
0
    def setUp(self):
        app = webapp2.WSGIApplication([
            webapp2.Route(r'/<team_key:>',
                          ApiTeamHistoryDistrictsController,
                          methods=['GET'])
        ],
                                      debug=True)
        self.testapp = webtest.TestApp(app)

        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_urlfetch_stub()
        self.testbed.init_memcache_stub()
        ndb.get_context().clear_cache(
        )  # Prevent data from leaking between tests

        self.testbed.init_taskqueue_stub(root_path=".")

        self.team = Team(id="frc1124",
                         name="UberBots",
                         team_number=1124,
                         nickname="UberBots")

        self.district_team = DistrictTeam(id="2015ne_frc1124",
                                          team=self.team.key,
                                          year=2015,
                                          district_key=ndb.Key(
                                              District, '2015ne'))

        self.district = District(id='2015ne', year=2015)

        self.team.put()
        self.district_team.put()
        self.district.put()
Example #18
0
 def reload(self):
     """Deserialize the JSON teams storage files to __teams."""
     try:
         with open("league.json", "r", encoding="utf-8") as f:
             self.__teams = {k: Team(**v) for k, v in json.load(f).items()}
     except FileNotFoundError:
         pass
Example #19
0
 def _get_teams_data(self, y, num_teams):
     self.teams = []
     for i in range(1, num_teams + 1):
         url = "{}/team/{}".format(
             BASE_URI, make_team_code(self.sport, self.league_id, i))
         team = Team(y, url)
         self.teams.append(team)
Example #20
0
def Register():
    if not isValidEmail(request.form['email']):
        return jsonify({'error': 'E-mail inválido'}), 400
    if len(request.form['password']) < PASSWORD_MIN_LENGTH:
        return jsonify({'error': 'Senha muito curta'}), 400
    if len(request.form['password']) > PASSWORD_MAX_LENGTH:
        return jsonify({'error': 'Senha muito longa'}), 400
    exists = User.query.filter_by(email=request.form['email']).first()
    if exists:
        return jsonify({'error': 'Email já registrado'}), 400
    name = request.form['name']
    if not len(name):
        return jsonify({'error': 'É necessário informar um nome'}), 400
    exists = User.query.filter_by(name=request.form['name']).first()
    if exists:
        return jsonify({'error': 'Nome já registrado'}), 400
    user = User(email=request.form['email'],
                password=encrypt(request.form['password']),
                name=name,
                role_id=2,
                regDate=time.time(),
                coins=50)
    db.session.add(user)
    db.session.commit()
    team = Team(name='Time de ' + name, user_id=user.id)
    db.session.add(team)
    db.session.commit()
    return jsonify(user.toJSON()), 201
Example #21
0
def readDictFromJSON(modelType: str) -> Union[None, dict]:
    """
    Returns a dictionary loaded directly from a JSON file.

    Package available method that returns a Python dictionary as defined in the relevant JSON file. The function will
    return either the dictionary converted into models or a directly loaded JSON dictionary.

    :param modelType: Type of model being loaded
    :type modelType: string
    :return: Dictionary if type is not a model
    :rtype: dictionary
    :return: None if type is a model
    :rtype: None
    """

    JSONFile = __JSONFile(modelType)
    tempDict = json.load(JSONFile)
    JSONFile.close()

    if modelType.lower() in MODEL_TYPE_DICT.get('models').get('driverSubset'):
        for model in tempDict:
            Driver(tempDict[model])
        return
    elif modelType.lower() in MODEL_TYPE_DICT.get('models').get('teamSubset'):
        for model in tempDict:
            Team(tempDict[model])
        return
    elif modelType.lower() in MODEL_TYPE_DICT.get('miscSubset'):
        return tempDict
Example #22
0
    def setUp(self):
        app = webapp2.WSGIApplication([webapp2.Route(r'/<team_key:>', ApiTeamController, methods=['GET'])], debug=True)
        self.testapp = webtest.TestApp(app)

        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_urlfetch_stub()
        self.testbed.init_memcache_stub()
        self.testbed.init_taskqueue_stub(root_path=".")

        self.team = Team(
                id="frc281",
                name="Michelin / Caterpillar / Greenville Technical College /\
                jcpenney / Baldor / ASME / Gastroenterology Associates /\
                Laserflex South & Greenville County Schools & Greenville\
                Technical Charter High School",
                team_number=281,
                rookie_year=1999,
                nickname="EnTech GreenVillians",
                address="Greenville, SC, USA",
                website="www.entech.org",
                motto = "Infiltrating Young Minds One Robot at a Time",
        )
        self.team.put()
Example #23
0
    def test_xml_constructor(self):
        ns = {"ns": "http://fantasysports.yahooapis.com/fantasy/v2/base.rng"}
        xml = et.parse('./sample-api-responses/get_team.xml').find(
            'ns:team', ns)

        result = Team.from_xml_api_data(xml)

        expected = Team(
            **{
                "name": "K.E.V.I.N",
                "id": 5,
                "owner": "Kevin",
                "is_my_team": True,
                "waiver_priority": 5,
                "move_count": 26,
                "trade_count": 0,
                "matchups": [],
                "average_stats": None,
            })

        self.assertEqual(expected.name, result.name)
        self.assertEqual(expected.id, result.id)
        self.assertEqual(expected.owner, result.owner)
        self.assertEqual(expected.is_my_team, result.is_my_team)
        self.assertEqual(expected.waiver_priority, result.waiver_priority)
        self.assertEqual(expected.move_count, result.move_count)
        self.assertEqual(expected.trade_count, result.trade_count)
        self.assertEqual(expected.matchups, result.matchups)
        self.assertEqual(expected.average_stats, result.average_stats)
Example #24
0
def generate_fixture_list(league):
    fixtures = []
    sql = "SELECT possible_games.team_1, possible_games.team_2, playlists.round_no FROM possible_games INNER JOIN fixtures ON fixtures.possible_game_id = possible_games.id INNER JOIN playlists ON fixtures.playlist_id = playlists.id INNER JOIN league_types ON league_types.id = playlists.league_type_id INNER JOIN leagues ON league_types.id = leagues.league_type_id WHERE leagues.id = %s"
    values = [league.id]
    results = run_sql(sql, values)

    game_no = 1
    for result in results:
        game = Game(result['team_1'], result['team_2'], league,
                    result['round_no'], game_no)
        fixtures.append(game)
        game_no += 1

    teams = []
    sql = "SELECT teams.* FROM teams INNER JOIN leagues ON leagues.id = teams.league_id WHERE leagues.id = %s"
    values = [league.id]
    results = run_sql(sql, values)
    for result in results:
        team = Team(league, result['name'], result['games_played'],
                    result['wins'], result['draws'], result['losses'],
                    result['goals_for'], result['goals_against'],
                    result['goal_difference'], result['points'], result['id'])
        teams.append(team)

    games = []
    for fixture in fixtures:
        team_1 = fixture.team_1
        team_2 = fixture.team_2
        game = Game(teams[team_1 - 1], teams[team_2 - 1], league,
                    fixture.round_no, fixture.game_no)
        games.append(game)

    return games
Example #25
0
    def parse(self, response):
        teams = []
        for team in response['hits']['hits']:
            first_tpid = int(team['_id'])
            team = team['_source']

            raw_website = team.get('team_web_url', None)
            website = urlparse.urlparse(
                raw_website, 'http').geturl() if raw_website else None

            teams.append(
                Team(
                    id="frc{}".format(team['team_number_yearly']),
                    team_number=team['team_number_yearly'],
                    name=team.get('team_name', None),
                    nickname=team.get('team_nickname', None),
                    # city=None,
                    # state_prov=None,  # team_stateprov isn't in the same format as the FRC API (e.g. 'CA' instead of 'California'). Don't save to avoid unnecessary cache clearing.
                    # country=None,
                    postalcode=team.get('team_postalcode', None),
                    website=website,
                    rookie_year=team.get('team_rookieyear', None),
                    first_tpid=first_tpid,
                    first_tpid_year=self.year,
                    motto=team.get('team_motto', None),
                ))

        return teams
Example #26
0
def create_client(user, params):
    name = params.get("name", "")
    if not name or len(name) > 30:
        return {"error_code": 20251, "msg": "name invalid"}

    #team = Team.select().where(Team.user == user, Team.name == name).first()
    team = Team.select().where(Team.user == user).first()
    if team:
        return {"error_code": 20252, "msg": "team is exists and must one"}

    team_id = GUID.guid()
    team = Team()
    team.id = team_id
    team.user = user
    team.name = name
    team.status = "normal"
    team.team_type = 'client'
    team.logo = widget.logo()
    team.save(force_insert=True)

    user.to_req = True
    user.identify = "c%s" % team.id
    user.save()

    team_profile = TeamProfile()
    team_profile.team = team
    team_profile.save()

    #Member.create(user=user, team=team, mtype='owner')
    return {"error_code": 0, "msg": "ok"}
Example #27
0
    def setUp(self):
        app = webapp2.WSGIApplication([webapp2.Route(r'/<team_key:>', ApiTeamHistoryDistrictsController, methods=['GET'])], debug=True)
        self.testapp = webtest.TestApp(app)

        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_urlfetch_stub()
        self.testbed.init_memcache_stub()
        self.testbed.init_taskqueue_stub(root_path=".")

        self.team = Team(
                id="frc1124",
                name="UberBots",
                team_number=1124,
                nickname="UberBots",
        )

        self.district_team = DistrictTeam(
                id="2015ne_frc1124",
                team=self.team.key,
                year=2015,
                district=3
        )

        self.team.put()
        self.district_team.put()
Example #28
0
def select(id):
    sql = "SELECT * FROM teams WHERE id = %s"
    values = [id]
    result = run_sql(sql, values)[0]
    team = Team(result["name"], result['coach'], result['wins'],
                result['losses'], result["id"])
    return team
Example #29
0
    def setUp(self):
        self.policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy(
            probability=1)
        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub(consistency_policy=self.policy)
        self.testbed.init_memcache_stub()
        self.testbed.init_user_stub()
        self.testbed.init_urlfetch_stub()
        self.testbed.init_taskqueue_stub(_all_queues_valid=True)
        ndb.get_context().clear_cache(
        )  # Prevent data from leaking between tests

        app = webapp2.WSGIApplication([
            RedirectRoute(r'/mod/redeem',
                          TeamAdminRedeem,
                          'team-admin',
                          strict_slash=True),
        ])
        self.testapp = webtest.TestApp(app)

        self.team = Team(
            id="frc1124",
            name="Team",
            team_number=1124,
        )
        self.team.put()
        self.now = datetime.datetime.now()
Example #30
0
    def setUp(self):
        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_memcache_stub()

        event = Event(
            id="2011ct",
            end_date=datetime.datetime(2011, 4, 2, 0, 0),
            event_short="ct",
            event_type_enum=EventType.REGIONAL,
            first_eid="5561",
            name="Northeast Utilities FIRST Connecticut Regional",
            start_date=datetime.datetime(2011, 3, 31, 0, 0),
            year=2011,
            venue_address="Connecticut Convention Center\r\n100 Columbus Blvd\r\nHartford, CT 06103\r\nUSA",
            website="http://www.ctfirst.org/ctr"
        )
        event.put()

        team = Team(
            id="frc177",
            team_number=177,
            website="http://www.bobcatrobotics.org"
        )
        team.put()

        event_team = EventTeam(
            id="%s_%s" % (event.key.id(), team.key.id()),
            event=event.key,
            team=team.key,
            year=None)
        event_team.put()