Exemple #1
0
def test_headers_len():
    h = SpamcHeaders(headers={
        'A': GenericHeaderValue(value='a'),
        'B': GenericHeaderValue(value='b')
    })

    assert len(h) == 2
Exemple #2
0
def x_headers():
    from aiospamc.header_values import GenericHeaderValue

    return {
        'A': GenericHeaderValue(value='a'),
        'B': GenericHeaderValue(value='b')
    }
Exemple #3
0
def test_headers_keys():
    h = SpamcHeaders(headers={
        'A': GenericHeaderValue(value='a'),
        'B': GenericHeaderValue(value='b')
    })

    for test_result in h.keys():
        assert test_result in ['A', 'B']
Exemple #4
0
def test_headers_items():
    headers = {
        'A': GenericHeaderValue(value='a'),
        'B': GenericHeaderValue(value='b')
    }
    h = SpamcHeaders(headers=headers)

    for test_key, test_value in h.items():
        assert test_key in headers
        assert headers[test_key] is test_value
Exemple #5
0
def test_headers_bytes():
    h = SpamcHeaders(headers={
        'A': GenericHeaderValue(value='a'),
        'B': GenericHeaderValue(value='b')
    })
    result = bytes(h)

    header_bytes = [
        b'%b: %b\r\n' % (name.encode('ascii'), bytes(value))
        for name, value in h.items()
    ]
    for header in header_bytes:
        assert header in result
Exemple #6
0
def test_header_str():
    value = 'value'
    encoding = 'utf8'
    h = GenericHeaderValue(value=value, encoding=encoding)

    assert str(h) == 'value={}, encoding={}'.format(repr(value),
                                                    repr(encoding))
Exemple #7
0
def test_header_bytes():
    h = GenericHeaderValue(value='value', encoding='utf8')

    assert bytes(h) == b'value'
Exemple #8
0
def test_header_repr():
    h = GenericHeaderValue(value='value')

    assert repr(h) == 'GenericHeaderValue(value={}, encoding={})'.format(
        repr(h.value), repr(h.encoding))
Exemple #9
0

def test_user_repr():
    u = UserValue(name='username')

    assert repr(u) == 'UserValue(name={})'.format(repr('username'))


def test_user_bytes():
    u = UserValue(name='username')

    assert bytes(u) == b'username'


@pytest.mark.parametrize('test_input', [
    GenericHeaderValue('value'),
    CompressValue(),
    ContentLengthValue(),
    SetOrRemoveValue(ActionOption(local=True, remote=False)),
    MessageClassValue(value=MessageClassOption.ham),
    SpamValue(),
    UserValue()
])
def test_equal(test_input):
    assert test_input == test_input


@pytest.mark.parametrize('test_input', [
    GenericHeaderValue('value'),
    CompressValue(),
    ContentLengthValue(),
Exemple #10
0
def test_headers_values():
    values = [GenericHeaderValue(value='a'), GenericHeaderValue(value='b')]
    h = SpamcHeaders(headers={'A': values[0], 'B': values[1]})

    for test_result in h.values():
        assert test_result in values
    assert isinstance(result, GenericHeaderValue)
    assert result.value == 'value'


@pytest.mark.parametrize('test_input,header,value', [
    [b'Compress: zlib', 'Compress', CompressValue(algorithm='zlib')],
    [b'Content-length: 42', 'Content-length', ContentLengthValue(length=42)],
    [b'DidRemove: local, remote', 'DidRemove', SetOrRemoveValue(action=ActionOption(local=True, remote=True))],
    [b'DidSet: local, remote', 'DidSet', SetOrRemoveValue(action=ActionOption(local=True, remote=True))],
    [b'Message-class: spam', 'Message-class', MessageClassValue(value=MessageClassOption.spam)],
    [b'Remove: local, remote', 'Remove', SetOrRemoveValue(action=ActionOption(local=True, remote=True))],
    [b'Set: local, remote', 'Set', SetOrRemoveValue(action=ActionOption(local=True, remote=True))],
    [b'Spam: True ; 40 / 20', 'Spam', SpamValue(value=True, score=40, threshold=20)],
    [b'User: username', 'User', UserValue(name='username')],
    [b'XHeader: x value', 'XHeader', GenericHeaderValue('x value')]
])
def test_parse_header_success(test_input, header, value):
    result = parse_header(test_input)

    assert result[0] == header
    assert result[1] == value


def test_parse_body_success():
    test_input = b'Test body'
    result = parse_body(test_input, len(test_input))

    assert result == test_input