Exercise: Split Strings To User Objects#

Using dictionaries to carry user records is much too clumsy (and error prone, and complicated …). Lets create a simple class and use that as a convenience mechanism to store the same information instead.

import userdb

def test_read_userobjs_from_colon_separated_values():
    input = [
        '666:Jörg:Faschingbauer:1966-06-19\n',
        '42:Caro:Faschingbauer:1997-04-25\n',
        '7:Johanna:Faschingbauer:1995-06-11\n',
        '1024:Philipp:Lichtenberger:1986-04-06\n',
    ]

    persons = userdb.read_userobjs_from_colon_separated_values(input)

    assert persons[0].id == 666
    assert persons[0].firstname == 'Jörg'
    assert persons[0].lastname == 'Faschingbauer'
    assert persons[0].birth == '1966-06-19'

    assert persons[1].id == 42
    assert persons[1].firstname == 'Caro'
    assert persons[1].lastname == 'Faschingbauer'
    assert persons[1].birth == '1997-04-25'

    assert persons[2].id == 7
    assert persons[2].firstname == 'Johanna'
    assert persons[2].lastname == 'Faschingbauer'
    assert persons[2].birth == '1995-06-11'

    assert persons[3].id == 1024
    assert persons[3].firstname == 'Philipp'
    assert persons[3].lastname == 'Lichtenberger'
    assert persons[3].birth == '1986-04-06'