from sqlitedict import SqliteDict

def harness(key, value):
    """ this tests what can be assigned in SqliteDict's keys and values """
    mydict = SqliteDict(":memory:")
    mydict[key] = value

"""
Explanation: Using battle_tested to feel out new libraries.
battle_tested doesn't necessisarily need to be used as a fuzzer. I like to use its testing 
funcionality to literally "feel out" a library that is recommended to me so I know what works
and what will cause issues.
Here is how I used battle_tested to "feel out" sqlitedict so when I'm using it, there aren't 
any surprises.
First, lets import SqliteDict and make a harness that will allow us to test what can be assigned and what will cause random explosions to happen.
End of explanation
"""


from battle_tested import fuzz, success_map, crash_map

fuzz(harness, keep_testing=True) # keep testing allows us to collect "all" crashes

"""
Explanation: Now, we import the tools we need from battle_tested and fuzz it.
End of explanation
"""


crash_map()

success_map()

"""
Explanation: Now we can call success_map() and crash_map() to start to get a feel for what is accepted and what isn't.
End of explanation
"""


