Example #1
0
def test_class_encoding(trusted_scope):
    obj = DummyTestClass()
    with pytest.raises(
        savegame_codec.CanNotSaveGameException, match="Class test_savegame_manager.DummyTestClass is not trusted"
    ):
        savegame_codec.encode(obj)
        pytest.fail("Could save game even though test module should not be trusted")

    trusted_scope[__name__ + ".DummyTestClass"] = DummyTestClass
    retval = savegame_codec.encode(obj)

    assert retval
    assert isinstance(retval, str)

    loaded_obj = savegame_codec.decode(retval)
    assert isinstance(loaded_obj, DummyTestClass)
    assert type(loaded_obj) == type(obj)

    original_dict = loaded_obj.__dict__
    loaded_dict = loaded_obj.__dict__

    assert loaded_dict == original_dict

    del trusted_scope[__name__ + ".DummyTestClass"]

    with pytest.raises(
        savegame_codec.InvalidSaveGameException,
        match="DANGER DANGER - test_savegame_manager.DummyTestClass not trusted",
    ):
        savegame_codec.decode(retval)
        pytest.fail("Could load object from untrusted module")
def test_class_encoding():
    obj = DummyTestClass()
    with pytest.raises(savegame_codec.CanNotSaveGameException,
                       message="Could save game even though test module should not be trusted",
                       match="Class test_savegame_manager.DummyTestClass is not trusted"):
        savegame_codec.encode(obj)

    with TrustedScope():
        retval = savegame_codec.encode(obj)

        assert retval
        assert isinstance(retval, str)

        loaded_obj = savegame_codec.decode(retval)
        assert isinstance(loaded_obj, DummyTestClass)
        assert type(loaded_obj) == type(obj)

        original_dict = loaded_obj.__dict__
        loaded_dict = loaded_obj.__dict__

        assert loaded_dict == original_dict

    with pytest.raises(savegame_codec.InvalidSaveGameException,
                       message="Could load object from untrusted module",
                       match="DANGER DANGER - test_savegame_manager.DummyTestClass not trusted"):
        savegame_codec.decode(retval)
def test_class_encoding():
    obj = DummyTestClass()
    with pytest.raises(savegame_codec.CanNotSaveGameException,
                       message="Could save game eventhough test module should not be trusted!"):
        savegame_codec.encode(obj)

    with TrustedScope():
        retval = savegame_codec.encode(obj)

        assert retval
        assert isinstance(retval, str)

        loaded_obj = savegame_codec.decode(retval)
        assert isinstance(loaded_obj, DummyTestClass)
        assert type(loaded_obj) == type(obj)

        original_dict = loaded_obj.__dict__
        original_keys = original_dict.keys().sort()
        original_values = original_dict.values().sort()

        loaded_dict = loaded_obj.__dict__
        loaded_keys = loaded_dict.keys().sort()
        loaded_values = loaded_dict.values().sort()

        assert original_keys == loaded_keys
        assert loaded_values == original_values
        assert loaded_dict == original_dict

    with pytest.raises(savegame_codec.InvalidSaveGameException,
                       message="Could load object from untrusted module"):
        savegame_codec.decode(retval)
Example #4
0
def check_encoding(obj):
    retval = savegame_codec.encode(obj)
    assert retval
    assert isinstance(retval, str)

    restored_obj = savegame_codec.decode(retval)
    assert type(restored_obj) == type(obj)
    assert restored_obj == obj
def check_encoding(obj):
    retval = savegame_codec.encode(obj)
    assert retval
    assert isinstance(retval, str)

    restored_obj = savegame_codec.decode(retval)
    assert type(restored_obj) == type(obj)
    assert restored_obj == obj
Example #6
0
def test_enums():
    import EnumsAI

    test_obj = {EnumsAI.MissionType.COLONISATION: EnumsAI.MissionType.INVASION}
    restored_obj = savegame_codec.decode(savegame_codec.encode(test_obj))
    assert test_obj == restored_obj
Example #7
0
def test_setstate_call():
    with pytest.raises(Success):
        savegame_codec.decode(savegame_codec.encode(SetStateTester()))
        pytest.fail("__setstate__ was not called during decoding.")
Example #8
0
def test_getstate_call():
    with TrustedScope():
        with pytest.raises(Success):
            savegame_codec.encode(GetStateTester())
            pytest.fail("__getstate__ was not called during encoding.")
def test_setstate_call():
    with TrustedScope():
        with pytest.raises(
                Success,
                message="__setstate__ was not called during decoding."):
            savegame_codec.decode(savegame_codec.encode(SetStateTester()))
Example #10
0
def test_enums():
    import EnumsAI

    test_obj = {EnumsAI.MissionType.COLONISATION: EnumsAI.MissionType.INVASION}
    restored_obj = savegame_codec.decode(savegame_codec.encode(test_obj))
    assert test_obj == restored_obj
Example #11
0
def test_setstate_call():
    with TrustedScope():
        with pytest.raises(Success, message="__setstate__ was not called during decoding."):
            savegame_codec.decode(savegame_codec.encode(SetStateTester()))