File: test_memberlist.py

package info (click to toggle)
pyosmium 4.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,584 kB
  • sloc: python: 4,400; cpp: 2,504; makefile: 20
file content (35 lines) | stat: -rw-r--r-- 864 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# SPDX-License-Identifier: BSD-2-Clause
#
# This file is part of pyosmium. (https://osmcode.org/pyosmium/)
#
# Copyright (C) 2025 Sarah Hoffmann <lonvia@denofr.de> and others.
# For a full list of authors see the git log.


def test_member_list_length(simple_handler):
    data = """\
           r2 Mn3@
           r4
           r45 Mw1@fo,r45@4,r45@5
           """

    rels = {}

    def cb(rel):
        rels[rel.id] = len(rel.members)

    simple_handler(data, relation=cb)

    assert rels == {2: 1, 4: 0, 45: 3}


def test_list_members(simple_handler):
    members = []

    def cb(rel):
        members.extend((m.type, m.ref, m.role) for m in rel.members)

    simple_handler("r34 Mn23@,n12@foo,w5@.,r34359737784@(ü)", relation=cb)

    assert members == [('n', 23, ''), ('n', 12, 'foo'), ('w', 5, '.'),
                       ('r', 34359737784, '(ü)')]