Example #1
0
def test_projects(db: sqldb.SQLDB):
    prj1 = {
        'name': 'p1',
        'description': 'banana',
        # 'users': ['u1', 'u2'],
        'spec': {
            'company': 'ACME'
        },
        'state': 'active',
        'created': datetime.now(),
    }
    pid1 = db.add_project(prj1)
    p1 = db.get_project(project_id=pid1)
    assert p1, f'project {pid1} not found'
    out = {
        'name': p1.name,
        'description': p1.description,
        # 'users': sorted(u.name for u in p1.users),
        'spec': p1.spec,
        'state': p1.state,
        'created': p1.created,
    }
    assert prj1 == out, 'bad project'

    data = {'description': 'lemon'}
    db.update_project(p1.name, data)
    p1 = db.get_project(project_id=pid1)
    assert data['description'] == p1.description, 'bad update'

    prj2 = {'name': 'p2'}
    db.add_project(prj2)
    prjs = {p.name for p in db.list_projects()}
    assert {prj1['name'], prj2['name']} == prjs, 'list'
Example #2
0
def test_cache_projects(db: sqldb.SQLDB):
    assert 0 == len(db._projects), 'empty cache'
    name = 'prj348'
    db.add_project({'name': name})
    assert {name} == db._projects, 'project'

    mock = Mock()
    with patch(db, add_project=mock):
        db._create_project_if_not_exists(name)
    mock.assert_not_called()

    mock = Mock()
    with patch(db, add_project=mock):
        db._create_project_if_not_exists(name + '-new')
    mock.assert_called_once()