TeamspeakStats/tsstats/tests/test_ident_map.py

70 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
import pytest
from tsstats.client import Client, Clients
from tsstats.log import parse_logs
from tsstats.utils import transform_pretty_identmap
@pytest.fixture(scope='module')
def identmap_clients():
clients = Clients({
'1': '2',
'5': '2',
'UID1': 'UID2',
'UID5': 'UID2'
})
cl = Client('2', 'Client2')
uidcl = Client('UID2', 'Client2++')
clients += cl
clients += uidcl
return (clients, cl, uidcl)
def test_ident_map(identmap_clients):
clients, cl, uidcl = identmap_clients
assert clients['1'] == cl
assert clients['5'] == cl
assert clients['UID1'] == uidcl
assert clients['UID5'] == uidcl
@pytest.mark.parametrize('test_input,expected', [
(
[
{'primary_id': '1', 'alternate_ids': ['3', '6']},
{'primary_id': '4', 'alternate_ids': ['9', '42', '23']}
],
(('3', '1'), ('6', '1'), ('9', '4'), ('42', '4'), ('23', '4'))
),
(
[
{'name': 'Friend 1', 'primary_id': '2', 'alternate_ids': ['4']},
{
'name': 'Friend 3',
'primary_id': '8',
'alternate_ids': ['9', '14']
}
],
(('4', '2'), ('9', '8'), ('14', '8'))
)
])
def test_transform_pretty_identmap(test_input, expected):
transformed_identmap = transform_pretty_identmap(test_input)
for alternate, primary in expected:
assert transformed_identmap[alternate] == primary
def test_ident_map_wrong_identifier():
clients = list(parse_logs(
'tsstats/tests/res/test.log.identmap_wrong_identifier', ident_map={
'2': '1',
'3': '1'
}
))[0].clients
client = clients.get('1')
# assert client exists
assert client
# assert correct identifier
assert client.identifier == '1'