コード例 #1
0
def test_cross_log_boundary():
  '''
    Recover round from previous file *IF*
    - current filename came after previous filename, based on date in name
    - last round in previous filename is *not* empty

  '''
  logfile_1 = 'consolelog-16-02-27-01.txt'
  logfile_2 = 'consolelog-16-02-29-01.txt'
  logfile_3 = 'consolelog-16-03-04-01.txt'

  events_1 = [
      EventRequestMap('ctf_IceBeam', 0),
      EventBareLog('IceBeam by Zakath, Suow, Poop', 0),
      EventScore('Foobar', 'Alpha', 0),
  ]

  events_2 = [
      EventScore('Terminator', 'Alpha', 0),
      EventScore('Jim', 'Bravo', 0),

      EventRequestMap('ctf_Ash', 0),
      EventBareLog('ASH', 0),
  ]

  events_3 = [
      EventScore('Blain', 'Alpha', 0),
      EventShutdown(0)
  ]

  map_titles = {
      'ctf_IceBeam': 'IceBeam by Zakath, Suow, Poop',
      'ctf_Ash': 'ASH',
  }

  round_manager = FakeRoundManager(old_logfile_rounds={})

  decorated_events_1 = list(decorate_events(events_1,
                                            map_titles=map_titles,
                                            round_manager=round_manager,
                                            logfile=logfile_1))
  decorated_events_2 = list(decorate_events(events_2,
                                            map_titles=map_titles,
                                            round_manager=round_manager,
                                            logfile=logfile_2))
  decorated_events_3 = list(decorate_events(events_3,
                                            map_titles=map_titles,
                                            round_manager=round_manager,
                                            logfile=logfile_3))

  decorated_events = decorated_events_1 + decorated_events_2 + decorated_events_3

  assert decorated_events == [
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_IceBeam', 1),
      DecoratedEvent(EventScore('Terminator', 'Alpha', 0), 'ctf_IceBeam', 1),
      DecoratedEvent(EventScore('Jim', 'Bravo', 0), 'ctf_IceBeam', 1),
      DecoratedEvent(EventScore('Blain', 'Alpha', 0), 'ctf_Ash', 2),
  ]

  assert round_manager.finalized_rounds == {1, 2}
コード例 #2
0
def test_ignore_map():
  events = [
      EventRequestMap('ctf_IceBeam', 0),
      EventBareLog('IceBeam by Zakath, Suow, Poop', 0),
      EventScore('Foobar', 'Alpha', 0),

      EventRequestMap('ctf_Ash', 0),
      EventBareLog('ASH', 0),
      EventScore('Foobar', 'Alpha', 0),

      EventRequestMap('Bunker', 0),
      EventBareLog('BUNKER MAP', 0),
      EventScore('Foobar', 'Alpha', 0),
  ]

  ignore_maps = ['ctf_Ash']

  map_titles = {
      'ctf_IceBeam': 'IceBeam by Zakath, Suow, Poop',
      'ctf_Ash': 'ASH',
      'Bunker': 'BUNKER MAP',
  }

  assert list(decorate_events(events, ignore_maps=ignore_maps, map_titles=map_titles)) == [
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_IceBeam', None),
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'Bunker', None),
  ]
コード例 #3
0
def test_restart_map_change():
  events = [
      EventRequestMap('ctf_IceBeam', 0),
      EventBareLog('IceBeam by Zakath, Suow, Poop', 0),
      EventScore('Foobar', 'Alpha', 0),
      EventRestart(0),
      EventBareLog('IceBeam by Zakath, Suow, Poop', 0),
      EventScore('Foobar', 'Alpha', 0),
  ]

  map_titles = {
      'ctf_IceBeam': 'IceBeam by Zakath, Suow, Poop'
  }

  assert list(decorate_events(events, map_titles)) == [
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_IceBeam', None),
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_IceBeam', None),
  ]
コード例 #4
0
def test_ignore_players():
  events = [
      EventPlayerJoin('Joe', None, None, None),
      EventPlayerJoin('Major', None, None, None),
      Kill('Major', 'Zombie', 'MP5', 0),
      Kill('Zombie', 'Major', 'MP5', 0)
  ]

  ignore_players = ['Major']

  assert list(decorate_events(events, ignore_players=ignore_players)) == [
      DecoratedEvent(EventPlayerJoin('Joe', None, None, None), None, None)
  ]
コード例 #5
0
def test_round_1():
  round_manager = FakeRoundManager()

  events = [
      EventNextMap('ctf_IceBeam', 0),
      EventBareLog('IceBeam by Zakath, Suow, Poop', 0),
      EventScore('Foobar', 'Alpha', 0),

      EventNextMap('ctf_Ash', 0),
      EventBareLog('ASH', 0),
      EventScore('Foobar', 'Alpha', 0),
  ]

  map_titles = {
      'ctf_IceBeam': 'IceBeam by Zakath, Suow, Poop',
      'ctf_Ash': 'ASH'
  }

  assert list(decorate_events(events, map_titles=map_titles, round_manager=round_manager)) == [
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_IceBeam', 1),
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_Ash', 2),
  ]
コード例 #6
0
def test_normal_map_change():
  events = [
      EventScore('Foobar', 'Alpha', 0),
      EventNextMap('ctf_IceBeam', 0),
      EventBareLog('IceBeam by Zakath, Suow, Poop', 0),
      EventScore('Foobar', 'Alpha', 0),
      EventNextMap('ctf_Ash', 0),
      EventScore('Foobar', 'Alpha', 0),
      EventBareLog('ASH', 0),
      EventScore('Foobar', 'Alpha', 0),
  ]

  map_titles = {
      'ctf_IceBeam': 'IceBeam by Zakath, Suow, Poop',
      'ctf_Ash': 'ASH'
  }

  assert list(decorate_events(events, map_titles)) == [
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), None, None),
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_IceBeam', None),
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_IceBeam', None),
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_Ash', None),
  ]
コード例 #7
0
def test_round_recover():
  logfile = 'consolelog1.txt'

  round_manager = FakeRoundManager(old_logfile_rounds={
      logfile: Round(map='ctf_IceBeam', round_id=5)
  })

  events = [
      EventScore('Foobar', 'Alpha', 0),
      EventRestart(0),
      EventBareLog('IceBeam by Zakath, Suow, Poop', 0),
      EventScore('Foobar', 'Alpha', 0),
  ]

  map_titles = {
      'ctf_IceBeam': 'IceBeam by Zakath, Suow, Poop',
  }

  assert list(decorate_events(events, map_titles=map_titles, round_manager=round_manager, logfile=logfile)) == [
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_IceBeam', 5),
      DecoratedEvent(EventScore('Foobar', 'Alpha', 0), 'ctf_IceBeam', 6),
  ]

  assert round_manager.finalized_rounds == {5}
コード例 #8
0
ファイル: decorateevents.py プロジェクト: jrgp/soldat-pystats
def decorate_event(event, map, round_id):
    return DecoratedEvent(event=event, map=map, round_id=round_id)
コード例 #9
0
def test_decorate_event():
  event = EventScore('Foobar', 'Alpha', 0),
  assert decorate_event(event, None, None) == DecoratedEvent(event, None, None)
  assert decorate_event(event, 'ctf_IceBeam', 10) == DecoratedEvent(event, 'ctf_IceBeam', 10)