def test_add_protocol(patch_protocols, valid_params): proto = protocols.Protocol(**valid_params) protocols.add_protocol(proto) assert protocols.PROTOCOLS == [proto] assert proto.name in protocols._names_to_protocols assert proto.code in protocols._codes_to_protocols proto = protocols.Protocol(protocols.P_TCP, "tcp", "uint16be")
def test_add_protocol(patch_protocols): proto = protocols.Protocol(**valid_params()) protocols.add_protocol(proto) assert protocols.PROTOCOLS == [proto] assert proto.name in protocols._names_to_protocols assert proto.code in protocols._codes_to_protocols proto = protocols.Protocol( protocols.P_TCP, 16, "tcp", protocols.code_to_varint(protocols.P_TCP))
def test_add_protocol(valid_params): registry = protocols.ProtocolRegistry() proto = protocols.Protocol(**valid_params) registry.add(proto) assert proto.name in registry._names_to_protocols assert proto.code in registry._codes_to_protocols assert registry.find(proto.name) is registry.find(proto.code) is proto
def test_add_protocol_twice(patch_protocols): proto = protocols.Protocol(**valid_params()) protocols.add_protocol(proto) with pytest.raises(ValueError): protocols.add_protocol(proto) del protocols._names_to_protocols[proto.name] with pytest.raises(ValueError): protocols.add_protocol(proto) del protocols._codes_to_protocols[proto.code] protocols.add_protocol(proto) assert protocols.PROTOCOLS == [proto, proto]
def test_add_protocol_twice(patch_protocols, valid_params): proto = protocols.Protocol(**valid_params) protocols.add_protocol(proto) with pytest.raises(exceptions.ProtocolExistsError): protocols.add_protocol(proto) del protocols._names_to_protocols[proto.name] with pytest.raises(exceptions.ProtocolExistsError): protocols.add_protocol(proto) del protocols._codes_to_protocols[proto.code] protocols.add_protocol(proto) assert protocols.PROTOCOLS == [proto, proto]
def test_add_protocol_twice(valid_params): registry = protocols.ProtocolRegistry() proto = registry.add(protocols.Protocol(**valid_params)) with pytest.raises(exceptions.ProtocolExistsError): registry.add(proto) del registry._names_to_protocols[proto.name] with pytest.raises(exceptions.ProtocolExistsError): registry.add(proto) del registry._codes_to_protocols[proto.code] registry.add(proto)
def test_add_protocol_lock(valid_params): registry = protocols.REGISTRY.copy(unlock=True) assert not registry.locked registry.lock() assert registry.locked with pytest.raises(exceptions.ProtocolRegistryLocked): registry.add(protocols.Protocol(**valid_params)) with pytest.raises(exceptions.ProtocolRegistryLocked): registry.add_alias_name("tcp", "abcdef") with pytest.raises(exceptions.ProtocolRegistryLocked): registry.add_alias_code(0x4, 0x123456)
def test_invalid_vcode(valid_params, invalid_vcode): valid_params['vcode'] = invalid_vcode with pytest.raises(ValueError): protocols.Protocol(**valid_params)
def test_invalid_name(valid_params, invalid_name): valid_params['name'] = invalid_name with pytest.raises(ValueError): protocols.Protocol(**valid_params)
def test_invalid_code(valid_params, invalid_code): assert invalid_code not in protocols._CODES valid_params['code'] = invalid_code with pytest.raises(ValueError): protocols.Protocol(**valid_params)
def test_valid(valid_params): proto = protocols.Protocol(**valid_params) for key in valid_params: assert getattr(proto, key) == valid_params[key]
def test_invalid_codec(valid_params, invalid_codec): valid_params['codec'] = invalid_codec with pytest.raises(TypeError): protocols.Protocol(**valid_params)