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
|