async def test_replay_saver_readonly_file(standard_saver_args,
                                          mock_replay_headers,
                                          outside_source_stream, tmpdir):
    set_example_stream_data(outside_source_stream, mock_replay_headers)

    rfile = str(tmpdir.join("replay"))
    os.chmod(rfile, stat.S_IRUSR)

    saver = ReplaySaver(*standard_saver_args)
    with pytest.raises(BookkeepingError):
        await saver.save_replay(1111, outside_source_stream)
예제 #2
0
async def test_replay_saver_null_team(standard_saver_args,
                                      mock_replay_headers,
                                      outside_source_stream, tmpdir):
    set_example_stream_data(outside_source_stream, mock_replay_headers)
    mock_queries = standard_saver_args[1]
    mock_queries.get_teams_in_game.return_value = {
        1: ["user1"], 2: ["user2"], None: ["SomeGuy"]
    }

    saver = ReplaySaver(*standard_saver_args)
    await saver.save_replay(1111, outside_source_stream)
    rfile = str(tmpdir.join("replay"))
    head, rep = unpack_replay_format_2(open(rfile, "rb").read())
    assert head["teams"]["null"] == ["SomeGuy"]
async def test_replay_saver_save_replay(standard_saver_args,
                                        mock_replay_headers,
                                        outside_source_stream, tmpdir):
    set_example_stream_data(outside_source_stream, mock_replay_headers)

    saver = ReplaySaver(*standard_saver_args)
    await saver.save_replay(1111, outside_source_stream)

    rfile = str(tmpdir.join("replay"))
    head, rep = unpack_replay(open(rfile, "rb").read())
    assert type(head) is dict
    assert head['uid'] == 1111
    assert head['teams'] == {"1": ["user1"], "2": ["user2"]}
    assert head['featured_mod_versions'] == def_mod_versions
    for item in def_game_stats:
        assert head[item] == def_game_stats[item]
    assert rep == example_replay.header_data + b"bar"
async def test_replay_saver_no_header(standard_saver_args,
                                      outside_source_stream, tmpdir):
    outside_source_stream.finish()
    saver = ReplaySaver(*standard_saver_args)
    with pytest.raises(BookkeepingError):
        await saver.save_replay(1111, outside_source_stream)
예제 #5
0
 def build(cls, database, config):
     queries = ReplayDatabaseQueries(database)
     saver = ReplaySaver.build(queries, config)
     analyzer = ReplayAnalyzer()
     return cls(queries, saver, analyzer)
 def build(cls, database, **config):
     queries = ReplayDatabaseQueries(database)
     saver = ReplaySaver.build(queries, **config)
     return cls(queries, saver)