def test_follow_user(): follower = "follower_id" followee = "followee_id" f.write_document("users", follower, {"following_users": ["some_id"]}) assert d.follow_user(follower, followee) assert followee in d.get_user(follower).get("following_users") assert len(d.get_user(follower).get("following_users")) == 2
def test_query_collection(collection, doc_id, doc_id2, doc): doc2 = {"key": "value"} assert doc != doc2 f.write_document(collection, doc_id, doc) f.write_document(collection, doc_id2, doc2) result = list(f.query_collection(collection, "key", "==", "value").stream()) assert len(result) == 1 assert result[0].to_dict() == doc2
def test_write_document__merge(collection, doc_id, doc, doc2): assert doc != doc2 f.write_document(collection, doc_id, doc) f.write_document(collection, doc_id, doc2, merge=True) result = f.get_document(collection, doc_id) assert result != doc assert result != doc2 doc.update(doc2) assert result == doc
def test_update_document(collection, doc_id, doc, doc2): assert doc != doc2 f.write_document(collection, doc_id, doc) f.update_document(collection, doc_id, doc2) result = f.get_document(collection, doc_id) assert result != doc assert result != doc2 doc.update(doc2) assert result == doc
def write_state(state_doc): write_document( analytics.STATE_COLLECTION, analytics.get_analytics_document_id( state_doc["year"], state_doc["species"], state_doc["source"], state_doc.get("altitude_grp"), ), state_doc, )
def new_invite(): iid = "invite_id1" f.write_document( INVITE_COLLECTION, iid, { "email": INVITEE_EMAIL, "locale": "de-CH", "user": INVITER_USER_ID }, ) return iid
def update_documents(doc_id: str, to_mail: str) -> None: f.update_document( INVITE_COLLECTION, doc_id, { "sent": f.SERVER_TIMESTAMP, "numsent": f.Increment(1), "resend": f.DELETE_FIELD, }, ) f.write_document(LOOKUP_COLLECTION, to_mail, {"invites": f.ArrayUnion([doc_id])}, merge=True)
def resend_invite(): iid = "invite_id2" f.write_document( INVITE_COLLECTION, iid, { "email": INVITEE_EMAIL, "locale": "de-CH", "user": INVITER_USER_ID, "sent": str(datetime(2021, 1, 1)), "resend": 1, }, ) return iid
def test_update_state_write(state_doc, obs_id, obs_date, phase, expected): add_state(state_doc, "phase1", "id1", _date(1)) add_state(state_doc, "phase2", "id1", _date(2)) add_state(state_doc, "phase1", "id2", _date(3)) add_state(state_doc, "phase2", "id3", _date(4)) base_state_ref = copy.deepcopy(state_doc) write_document( analytics.STATE_COLLECTION, analytics.get_analytics_document_id( state_doc["year"], state_doc["species"], state_doc["source"], state_doc.get("altitude_grp"), ), state_doc, ) transactional_update_state = transactional(analytics.update_state) with transaction() as txn: transactional_update_state( txn, obs_id, _date(obs_date), phase, state_doc["source"], state_doc["year"], state_doc["species"], state_doc.get("altitude_grp"), ) data = read_state( state_doc["year"], state_doc["species"], state_doc["source"], state_doc.get("altitude_grp"), ) assert deepdiff.DeepDiff(base_state_ref, data) == expected, ( base_state_ref, data, )
def test_get_write_document(collection, doc_id, doc): f.write_document(collection, doc_id, doc) assert f.get_document(collection, doc_id) == doc
def test_write_document__overwrite(collection, doc_id, doc, doc2): assert doc != doc2 f.write_document(collection, doc_id, doc) f.write_document(collection, doc_id, doc2) assert f.get_document(collection, doc_id) == doc2
def _set_hash(key: str, data: str): hashed_data = _get_hash(data) write_document("definitions", "meteoswiss_import", {"hash_%s" % key: hashed_data}, merge=True) log.debug("set hash for %s to %s", key, hashed_data)
def test_query_collection__no_result(collection, doc_id, doc_id2, doc): f.write_document(collection, doc_id, doc) f.write_document(collection, doc_id2, {"key": "value"}) result = list(f.query_collection(collection, "key", "==", "miss").stream()) assert len(result) == 0
def write_observation(observation_id: str, data: dict) -> None: write_document("observations", observation_id, data)
def set_phenoyear(): f.write_document("definitions", "config_dynamic", {"phenoyear": 2000})
def process_update_nickname(user_id: str, nickname_old: str, nickname_new: str): write_document("nicknames", nickname_new, {"user": user_id}) update_document("public_users", user_id, {"nickname": nickname_new}) delete_document("nicknames", nickname_old)
def write_individual(individual_id: str, data: dict, merge=False) -> None: write_document("individuals", individual_id, data, merge=merge)
def static_config(): d._get_static_config.cache_clear() with open(CONFIG_STATIC_RESOURCE, "r") as file: data = json.loads(file.read()) f.write_document("definitions", "config_static", data) return data
def dynamic_config(): with open(CONFIG_DYNAMIC_RESOURCE, "r") as file: data = json.loads(file.read()) f.write_document("definitions", "config_dynamic", data) return data
def test_follow_user__no_array(): follower = "follower_id" followee = "followee_id" f.write_document("users", follower, {"some_data": "data"}) assert d.follow_user(follower, followee) assert followee in d.get_user(follower).get("following_users")
def lookup(self): invite_id = "invite_1" f.write_document(LOOKUP_COLLECTION, INVITEE_EMAIL, {"invites": [invite_id]}) return invite_id
def lookups(self): invite_ids = {"invite_1", "invite_2"} f.write_document(LOOKUP_COLLECTION, INVITEE_EMAIL, {"invites": invite_ids}) return invite_ids
def test_delete_document(collection, doc_id, doc): f.write_document(collection, doc_id, doc) assert f.get_document(collection, doc_id) f.delete_document(collection, doc_id) assert not f.get_document(collection, doc_id)
def invitee_user(): f.write_document("users", INVITEE_USER_ID, {"nickname": INVITEE_NICKNAME}) return INVITEE_USER_ID
def test_get_collection(collection, doc_id, doc_id2, doc, doc2): assert doc != doc2 f.write_document(collection, doc_id, doc) f.write_document(collection, doc_id2, doc2) assert len(list(f.get_collection(collection).stream())) == 2
def process_new_user(user_id: str, nickname: str): write_document("nicknames", nickname, {"user": user_id}) write_document("public_users", user_id, {"nickname": nickname})