You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
2.0 KiB

2 years ago
  1. import random
  2. from fe.access import book
  3. from fe.access.new_seller import register_new_seller
  4. class GenBook:
  5. def __init__(self, user_id, store_id):
  6. self.user_id = user_id
  7. self.store_id = store_id
  8. self.password = self.user_id
  9. self.seller = register_new_seller(self.user_id, self.password)
  10. code = self.seller.create_store(store_id)
  11. assert code == 200
  12. self.__init_book_list__()
  13. def __init_book_list__(self):
  14. self.buy_book_info_list = []
  15. self.buy_book_id_list = []
  16. def gen(self, non_exist_book_id: bool, low_stock_level, max_book_count: int = 100) -> (bool, []):
  17. self.__init_book_list__()
  18. ok = True
  19. book_db = book.BookDB()
  20. rows = book_db.get_book_count()
  21. start = 0
  22. if rows > max_book_count:
  23. start = random.randint(0, rows - max_book_count)
  24. size = random.randint(1, max_book_count)
  25. books = book_db.get_book_info(start, size)
  26. book_id_exist = []
  27. book_id_stock_level = {}
  28. for bk in books:
  29. if low_stock_level:
  30. stock_level = random.randint(0, 100)
  31. else:
  32. stock_level = random.randint(2, 100)
  33. code = self.seller.add_book(self.store_id, stock_level, bk)
  34. assert code == 200
  35. book_id_stock_level[bk.id] = stock_level
  36. book_id_exist.append(bk)
  37. for bk in book_id_exist:
  38. stock_level = book_id_stock_level[bk.id]
  39. if stock_level > 1:
  40. buy_num = random.randint(1, stock_level)
  41. else:
  42. buy_num = 0
  43. # add a new pair
  44. if non_exist_book_id:
  45. bk.id = bk.id + "_x"
  46. if low_stock_level:
  47. buy_num = stock_level + 1
  48. self.buy_book_info_list.append((bk, buy_num))
  49. for item in self.buy_book_info_list:
  50. self.buy_book_id_list.append((item[0].id, item[1]))
  51. return ok, self.buy_book_id_list