import random from fe.access import book from fe.access.new_seller import register_new_seller class GenBook: def __init__(self, user_id, store_id): self.user_id = user_id self.store_id = store_id self.password = self.user_id self.seller = register_new_seller(self.user_id, self.password) code = self.seller.create_store(store_id) assert code == 200 self.__init_book_list__() def __init_book_list__(self): self.buy_book_info_list = [] self.buy_book_id_list = [] def gen(self, non_exist_book_id: bool, low_stock_level, max_book_count: int = 100) -> (bool, []): self.__init_book_list__() ok = True book_db = book.BookDB() rows = book_db.get_book_count() start = 0 if rows > max_book_count: start = random.randint(0, rows - max_book_count) size = random.randint(1, max_book_count) books = book_db.get_book_info(start, size) book_id_exist = [] book_id_stock_level = {} for bk in books: if low_stock_level: stock_level = random.randint(0, 100) else: stock_level = random.randint(2, 100) code = self.seller.add_book(self.store_id, stock_level, bk) assert code == 200 book_id_stock_level[bk.id] = stock_level book_id_exist.append(bk) for bk in book_id_exist: stock_level = book_id_stock_level[bk.id] if stock_level > 1: buy_num = random.randint(1, stock_level) else: buy_num = 0 # add a new pair if non_exist_book_id: bk.id = bk.id + "_x" if low_stock_level: buy_num = stock_level + 1 self.buy_book_info_list.append((bk, buy_num)) for item in self.buy_book_info_list: self.buy_book_id_list.append((item[0].id, item[1])) return ok, self.buy_book_id_list