def test_agent_count():
    """Test agent_count"""
    agent1 = a.agent(p.identifier('a', 'b', 'agent'), 'nimi', 'tyyppi1')
    agent2 = a.agent(p.identifier('a', 'b', 'agent'), 'nimi', 'tyyppi2')
    agent3 = a.agent(p.identifier('a', 'b', 'agent'), 'nimi', 'tyyppi1')
    premisroot = p.premis(child_elements=[agent1, agent2, agent3])
    assert a.agent_count(premisroot) == 3
def test_find_agent_by_id():
    """Test find_agent_by_id"""
    agent1 = a.agent(p.identifier('local', 'id1', 'agent'), 'name', 'type1')
    agent2 = a.agent(p.identifier('local', 'id2', 'agent'), 'name', 'type2')
    agent3 = a.agent(p.identifier('local', 'id3', 'agent'), 'name', 'type3')
    xml = p.premis(child_elements=[agent1, agent2, agent3])
    agent = a.find_agent_by_id(xml, 'id2')
    assert p.parse_identifier_type_value(p.parse_identifier(agent, 'agent'),
                                         'agent') == ('local', 'id2')
def test_iter_agents():
    """Test iter_agents"""
    agent1 = a.agent(p.identifier('a', 'b', 'agent'), 'nimi1', 'tyyppi')
    agent2 = a.agent(p.identifier('a', 'b', 'agent'), 'nimi2', 'tyyppi')
    agent3 = a.agent(p.identifier('a', 'b', 'agent'), 'nimi3', 'tyyppi')
    premisroot = p.premis(child_elements=[agent1, agent2, agent3])
    i = 0
    for _agent in a.iter_agents(premisroot):
        i = i + 1
        assert a.parse_name(_agent) == 'nimi' + str(i)
    assert i == 3
def test_agents_with_type():
    """Test agents_with_type"""
    agent1 = a.agent(p.identifier('a', 'b', 'agent'), 'nimi1', 'tyyppi1')
    agent2 = a.agent(p.identifier('a', 'b', 'agent'), 'nimi2', 'tyyppi2')
    agent3 = a.agent(p.identifier('a', 'b', 'agent'), 'nimi3', 'tyyppi1')
    agentlist = []
    i = 1
    for _agent in a.agents_with_type([agent1, agent2, agent3], 'tyyppi1'):
        assert _agent == ('tyyppi1', 'nimi' + str(i))
        agentlist.append(_agent)
        i = i + 2
    assert len(agentlist) == 2
def test_parse_note():
    """Test parse_note"""
    agent = a.agent(p.identifier('a', 'b', 'agent'),
                    'nimi',
                    'tyyppi',
                    note='nootti')
    assert a.parse_note(agent) == 'nootti'
def test_agent():
    """Test agent"""
    agent_id = p.identifier('a', 'b', 'agent')
    agent = a.agent(agent_id, 'c', 'd')
    xml = ('<premis:agent xmlns:premis="info:lc/xmlns/premis-v2">'
           '<premis:agentIdentifier><premis:agentIdentifierType>'
           'a</premis:agentIdentifierType><premis:agentIdentifierValue>'
           'b</premis:agentIdentifierValue></premis:agentIdentifier>'
           '<premis:agentName>c</premis:agentName>'
           '<premis:agentType>d</premis:agentType></premis:agent>')
    assert u.compare_trees(agent, ET.fromstring(xml))