mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-27 20:01:42 +01:00
8b737af28b
The previous (pre-0.34.2) constructor searched for a config file but only if the database path was not specified, and only to retrieve database.path. Neither of the available options (CONFIG.SEARCH or CONFIG.NONE) matches this semantics exactly, but CONFIG.SEARCH causes less breakage for people who relied on the old behaviour to set their database.path [1]. Since it also seems like the friendlier option in the long run, this commit switches to CONFIG.SEARCH as default. This requires a certain amount of updating the pytest tests, but most users will actually have a config file, unlike the test environment. [1]: id:87fsqijx7u.fsf@metapensiero.it
56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
import collections.abc
|
|
|
|
import pytest
|
|
|
|
import notmuch2._database as dbmod
|
|
|
|
import notmuch2._config as config
|
|
|
|
|
|
class TestIter:
|
|
|
|
@pytest.fixture
|
|
def db(self, maildir):
|
|
with dbmod.Database.create(maildir.path) as db:
|
|
yield db
|
|
|
|
def test_type(self, db):
|
|
assert isinstance(db.config, collections.abc.MutableMapping)
|
|
assert isinstance(db.config, config.ConfigMapping)
|
|
|
|
def test_alive(self, db):
|
|
assert db.config.alive
|
|
|
|
def test_set_get(self, maildir):
|
|
# Ensure get-set works from different db objects
|
|
with dbmod.Database.create(maildir.path, config=dbmod.Database.CONFIG.EMPTY) as db0:
|
|
db0.config['spam'] = 'ham'
|
|
with dbmod.Database(maildir.path, config=dbmod.Database.CONFIG.EMPTY) as db1:
|
|
assert db1.config['spam'] == 'ham'
|
|
|
|
def test_get_keyerror(self, db):
|
|
with pytest.raises(KeyError):
|
|
val = db.config['not-a-key']
|
|
print(repr(val))
|
|
|
|
def test_iter(self, db):
|
|
assert list(db.config) == []
|
|
db.config['spam'] = 'ham'
|
|
db.config['eggs'] = 'bacon'
|
|
assert set(db.config) == {'spam', 'eggs'}
|
|
assert set(db.config.keys()) == {'spam', 'eggs'}
|
|
assert set(db.config.values()) == {'ham', 'bacon'}
|
|
assert set(db.config.items()) == {('spam', 'ham'), ('eggs', 'bacon')}
|
|
|
|
def test_len(self, db):
|
|
assert len(db.config) == 0
|
|
db.config['spam'] = 'ham'
|
|
assert len(db.config) == 1
|
|
db.config['eggs'] = 'bacon'
|
|
assert len(db.config) == 2
|
|
|
|
def test_del(self, db):
|
|
db.config['spam'] = 'ham'
|
|
assert db.config.get('spam') == 'ham'
|
|
del db.config['spam']
|
|
assert db.config.get('spam') is None
|