示例#1
0
def test_remove_not_found():
    cards = CardDB(index='id')

    with pytest.raises(KeyError):
        cards.remove({'id': 2, 'a': 1, 'b': 'c'})

    with pytest.raises(KeyError):
        cards.remove({'a': 1, 'b': 'c'})
示例#2
0
def test_remove_only_matching_index():
    card2 = {'id': 2, 'a': 1, 'b': 'c'}
    card3 = {'id': 3, 'a': 2, 'b': 'c'}
    card7 = {'id': 7, 'a': 2, 'b': 'f'}
    cards = CardDB(card2, card3, card7, index='id')
    assert len(cards) == 3
    cards.remove({'id': 3})
    assert len(cards) == 2
    assert cards[2] == card2
    assert cards[3] is None
    assert cards[7] == card7
示例#3
0
def test_save(s3fn):
    cards = CardDB(index='id', s3filename=s3fn)
    assert not S3FS.exists(s3fn)
    card0 = {'id': 0, 'a': 1, 'b': 'c', 'd': 4.5}
    card3 = {'id': 3, 'a': 2, 'b': 'e', 'd': 8.5}
    card7 = {'id': 7, 'a': 2, 'b': 'c', 'd': -4.2}
    cards.add(card0)
    cards.add(card3)
    cards.add(card7)
    assert len(cards) == 3
    cards.remove(card3)
    cards.save()
    assert S3FS.exists(s3fn)
    with S3FS.open(s3fn, 'r') as f:
        df = pd.read_csv(f)
    assert cards._df.equals(df)
    cards2 = CardDB(index='id', s3filename=s3fn)
    assert cards._df.equals(cards2._df)