71101d041a
Users can now mark individual cards with one of four different coloured flags, instead of relying on a tag that applied to the whole note. - replaced marking functionality in reviewer and browser with new flag options - added flag:x search - marked and leech tags now show in normal tag list in filter screen, instead of being treated specially - the other clients will need updating to set and shown the flags, but flags set in the beta should be preserved by the other clients
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from tests.shared import assertException, getEmptyCol
|
|
|
|
def test_flags():
|
|
col = getEmptyCol()
|
|
n = col.newNote()
|
|
n['Front'] = "one"; n['Back'] = "two"
|
|
cnt = col.addNote(n)
|
|
c = n.cards()[0]
|
|
# make sure higher bits are preserved
|
|
origBits = 0b101 << 3
|
|
c.flags = origBits
|
|
c.flush()
|
|
# no flags to start with
|
|
assert c.userFlag() == 0
|
|
assert len(col.findCards("flag:0")) == 1
|
|
assert len(col.findCards("flag:1")) == 0
|
|
# set flag 2
|
|
col.setUserFlag(2, [c.id])
|
|
c.load()
|
|
print("db is", col.db.all("select id, flags from cards"))
|
|
assert c.userFlag() == 2
|
|
assert c.flags & origBits == origBits
|
|
assert len(col.findCards("flag:0")) == 0
|
|
assert len(col.findCards("flag:2")) == 1
|
|
assert len(col.findCards("flag:3")) == 0
|
|
# change to 3
|
|
col.setUserFlag(3, [c.id])
|
|
c.load()
|
|
assert c.userFlag() == 3
|
|
# unset
|
|
col.setUserFlag(0, [c.id])
|
|
c.load()
|
|
assert c.userFlag() == 0
|
|
|
|
# should work with Cards method as well
|
|
c.setUserFlag(2)
|
|
assert c.userFlag() == 2
|
|
c.setUserFlag(3)
|
|
assert c.userFlag() == 3
|
|
c.setUserFlag(0)
|
|
assert c.userFlag() == 0
|