def test_create_and_get(self, user: UserData): new_user = mongo_user_wrapper.create(user) user.uid = new_user.uid self.assertEqual(user, new_user) retrieved_user = mongo_user_wrapper.get(new_user.uid) self.assertEqual(retrieved_user, new_user)
def __init__(self): self.userData = UserData()
class UserLogic(object): def __init__(self): self.userData = UserData() def get_one(self, id_user): try: return self.userData.get_one(id_user) except: return None def get_one_by_credentials(self, email, password): try: return self.userData.get_one_by_credentials(email=email, password=password) except: return None def get_one_by_user(self, email): try: return self.userData.get_one_by_user(email=email) except: return None def get_all(self): return self.userData.get_all() def insert(self, user): self.userData.insert(user) return True def remove(self, id_user): user = self.get_one(id_user) if user is None: return False else: self.userData.remove(user.id_user) return True def update(self, user): self.userData.update(user) return True def regla_1(self, user): if self.get_one_by_user(user.email) is not None: raise UserException("El usuario ya existe.") return True def insert(self, user): if not self.regla_1(user): return False self.userData.insert(user) return True def remove(self, id_user): user = self.get_one(id_user) if user is None: return False else: self.userData.remove(user.id_user) return True def insert_coin_fav(self, coin_fav): self.userData.insert_coin_fav(coin_fav) return True def remove_coin_fav(self, id_user, ticker): coin_fav = self.userData.get_one_coin(id_user, ticker) if coin_fav is None: return False else: self.userData.remove_coin_fav(id_user, ticker) return True def coin_fav_user(self, id_user): fav = [] fav = self.userData.get_fav_user(id_user) return fav def is_coin_fav(self, id_user, ticker): coin = self.userData.get_one_coin(id_user, ticker) if coin is None: return False else: return True def updateCoin(self, id_user, ticker, quantity, price): coin = self.userData.get_one_coin(id_user=id_user, ticker=ticker) if coin is not None: coin.trade_price = price coin.trade_quantity = quantity self.userData.update_coin(coin)
def update(user: UserData) -> UpdateResult: user_doc = user.to_doc() return mongo_crud_wrapper.update(COLLECTION_NAME, user_doc)
def get(user_id: ObjectId) -> BaseData: user_doc = mongo_crud_wrapper.get(COLLECTION_NAME, user_id) return UserData.from_doc(user_doc)
def create(user: UserData) -> BaseData: user_doc = user.to_doc() mongo_crud_wrapper.create(COLLECTION_NAME, user_doc) return UserData.from_doc(user_doc)
def test_get_doc(user: UserData, object_id): user.uid = object_id user_doc = user.to_doc() data_obj = UserData.from_doc(user_doc) assert data_obj == user
def test_to_json(user: UserData, object_id): user.uid = object_id user_json = user.to_json() loaded_json = UserData.from_json(user_json) assert loaded_json == user
2021-05-03 """ from datetime import datetime, timedelta import sqlite3 from data.post_data import PostData, PostModel from data.snapshot_data import SnapshotData, SnapshotModel, SnapshotFrontpageModel from data.user_data import UserData from services import post_service from utils.logger import logger from utils.reddit import base36decode _post_data = PostData() _snapshot_data = SnapshotData() _user_data = UserData() DB_FILE = "src/database.db" def migrate_posts(offset=0): """Grabs posts in batches of 1000 at a time and migrates them to the new database. Returns number of processed rows. If less than 1000, at end of the table.""" conn = sqlite3.connect(DB_FILE) conn.row_factory = sqlite3.Row rows = conn.execute("SELECT * FROM posts LIMIT 1000 OFFSET ?;", (offset, )).fetchall() conn.close()