Exemplo n.º 1
0
 def __init__(self, search_info: str, page: int, book_id: list):
     db_conn.DBConn.__init__(self)
     # 创建类 BookDB
     self.book_db = book.BookDB(conf.Use_Large_DB)
     self.search_info = search_info
     self.page = page
     self.book_id = book_id
 def pre_run_initialization(self):
     self.auth = auth.Auth(conf.URL)
     # 注册一个用户进行搜索
     self.user_id = "test_global_search_content_store_id_1_{}".format(
         time.time())
     self.password = "******" + self.user_id
     self.terminal = "terminal_" + self.user_id
     assert self.auth.register(self.user_id, self.password) == 200
     # 注册一个店铺,对其进行增加库存,进行被搜索
     self.another_user_id = "test_global_search_content_store_id_2_{}".format(
         time.time())
     self.seller = register_new_seller(self.another_user_id, self.password)
     self.store_id = "test_global_search_content_store_id_{}".format(
         str(uuid.uuid1()))
     assert self.seller.create_store(self.store_id) == 200
     # 对其增加库存(80本书)
     book_db = book.BookDB()
     self.books = book_db.get_book_info(0, 100)
     for b in self.books:
         code = self.seller.add_book(self.store_id, 0, b)
         assert code == 200
     # 搜索的标题内容
     self.search_info = "一个 女生的自白 \n"
     # 搜索的页数
     self.page = 1
     self.large_page = 20
     yield
Exemplo n.º 3
0
    def __init__(self):
        self.uuid = str(uuid.uuid1())
        self.book_ids = []
        self.buyer_ids = []
        self.store_ids = []
        self.book_db = book.BookDB(conf.Use_Large_DB)
        self.row_count = self.book_db.get_book_count()

        self.book_num_per_store = conf.Book_Num_Per_Store
        if self.row_count < self.book_num_per_store:
            self.book_num_per_store = self.row_count
        self.store_num_per_user = conf.Store_Num_Per_User
        self.seller_num = conf.Seller_Num
        self.buyer_num = conf.Buyer_Num
        self.session = conf.Session
        self.stock_level = conf.Default_Stock_Level
        self.user_funds = conf.Default_User_Funds
        self.batch_size = conf.Data_Batch_Size
        self.procedure_per_session = conf.Request_Per_Session

        self.n_new_order = 0
        self.n_payment = 0
        self.n_new_order_ok = 0
        self.n_payment_ok = 0
        self.time_new_order = 0
        self.time_payment = 0
        self.lock = threading.Lock()
Exemplo n.º 4
0
    def pre_run_initialization(self):
        self.user_id = "test_search_user_id_".format(str(uuid.uuid1()))
        self.password = "******".format(str(uuid.uuid1()))
        self.store_id = "test_search_store_id_".format(str(uuid.uuid1()))
        self.search = search.Search(conf.URL)
        self.auth = auth.Auth(conf.URL)
        code = self.auth.register(self.user_id, self.password)
        assert code == 200

        self.seller = seller.Seller(conf.URL, self.user_id, self.password)
        code = self.seller.create_store(self.store_id)
        assert code == 200

        book_db = b.BookDB()
        books = book_db.get_book_info(0, 5)
        self.search_info = {
            'title': [],
            'tags': [],
            'contents': [],
            'authors_or_translators': [],
            'publishers': []
        }
        for book in books:
            self.search_info['title'].append(book.title)
            self.search_info['tags'].append(book.title)
            self.seller.add_book(self.store_id, 0, book)
        yield
Exemplo n.º 5
0
    def pre_run_initialization(self):
        # do before test
        self.seller_id1 = "test_add_books_seller_id_{}".format(
            str(uuid.uuid1()))
        self.store_id1 = "test_add_books_store_id_{}".format(str(uuid.uuid1()))
        self.password = self.seller_id1
        self.seller1 = register_new_seller(self.seller_id1, self.password)

        code = self.seller1.create_store(self.store_id1)
        assert code == 200
        book_db = book.BookDB()
        self.books1 = book_db.get_book_info(0, 10)

        self.seller_id2 = "test_add_books_seller_id_{}".format(
            str(uuid.uuid1()))
        self.store_id2 = "test_add_books_store_id_{}".format(str(uuid.uuid1()))
        self.password = self.seller_id2
        self.seller2 = register_new_seller(self.seller_id2, self.password)

        code = self.seller2.create_store(self.store_id2)
        assert code == 200
        book_db = book.BookDB()
        self.books2 = book_db.get_book_info(10, 5)

        self.seller_id3 = "test_add_books_seller_id_{}".format(
            str(uuid.uuid1()))
        self.store_id3 = "test_add_books_store_id_{}".format(str(uuid.uuid1()))
        self.password = self.seller_id3
        self.seller3 = register_new_seller(self.seller_id3, self.password)

        code = self.seller3.create_store(self.store_id3)
        assert code == 200
        book_db = book.BookDB()
        self.books3 = book_db.get_book_info(99, 7)
        for b in self.books1:
            code = self.seller1.add_book(self.store_id1, 0, b)
            assert code == 200
        for b in self.books2:
            code = self.seller2.add_book(self.store_id2, 0, b)
            assert code == 200
        for b in self.books3:
            code = self.seller3.add_book(self.store_id3, 0, b)
            assert code == 200
        yield
 def __init__(self, global_store: bool = True, store_id: str = "ok"):
     # 创建实例init_database
     store.init_database()
     db_conn.DBConn.__init__(self)
     # 创建类 BookDB
     self.book_db = book.BookDB(conf.Use_Large_DB)
     # 创建类 Book
     self.book = book.Book()
     # 判断是否进行全局搜索
     self.global_store = global_store
     # 若进行全局搜索,store_id设置为 -1
     self.store_id = store_id
Exemplo n.º 7
0
    def pre_run_initialization(self):
        # do before test
        self.seller_id = "test_add_books_seller_id_{}".format(str(uuid.uuid1()))
        self.store_id = "test_add_books_store_id_{}".format(str(uuid.uuid1()))
        self.password = self.seller_id
        self.seller = register_new_seller(self.seller_id, self.password)

        code = self.seller.create_store(self.store_id)
        assert code == 200
        book_db = book.BookDB()
        self.books = book_db.get_book_info(0, 2)

        yield
Exemplo n.º 8
0
    def pre_run_initialization(self):
        self.user_id = "test_add_book_stock_level1_user_{}".format(
            str(uuid.uuid1()))
        self.store_id = "test_add_book_stock_level1_store_{}".format(
            str(uuid.uuid1()))
        self.password = self.user_id
        self.seller = register_new_seller(self.user_id, self.password)

        code = self.seller.create_store(self.store_id)
        assert code == 200
        book_db = book.BookDB()
        self.books = book_db.get_book_info(0, 5)
        for bk in self.books:
            code = self.seller.add_book(self.store_id, 0, bk)
            assert code == 200
        yield
    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)
                code = self.seller.add_book(self.store_id, stock_level, bk)
            else:
                stock_level = random.randint(2, 100)
                code = self.seller.add_book(self.store_id, 4 * 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
Exemplo n.º 10
0
    def gen(self, non_exist_book_id: bool, low_stock_level, max_book_count: int = 5) -> (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_id = book_db.get_book_id(start, size)
        book_id_exist = []
        book_id_stock_level = {}
        book_id_price = {}
        for bk in books_id:
            price = random.randint(0, 100)
            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, price)
            assert code == 200
            book_id_stock_level[bk] = stock_level
            book_id_price[bk] = price
            book_id_exist.append(bk)

        for bk in book_id_exist:
            stock_level = book_id_stock_level[bk]
            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 = bk + "_x"
                book_id_price[bk] = price
            if low_stock_level:
                buy_num = stock_level + 1
            self.buy_book_info_list.append((bk, buy_num, book_id_price[bk]))

        for item in self.buy_book_info_list:
            self.buy_book_id_list.append((item[0], item[1], item[2]))
        return ok, self.buy_book_id_list
Exemplo n.º 11
0
 def pre_run_initialization(self):
     self.query = '感人'
     self.title = '美丽心灵'
     self.tag = '漫画'
     self.author = '张乐平'
     self.seller_id = "test_add_book_stock_level1_user_{}".format(
         str(uuid.uuid1()))
     self.store_id = "test_add_book_stock_level1_store_{}".format(
         str(uuid.uuid1()))
     self.password = self.seller_id
     self.seller = register_new_seller(self.seller_id, self.password)
     self.buyer_id = "test_new_order_buyer_id_{}".format(str(uuid.uuid1()))
     self.buyer = register_new_buyer(self.buyer_id, self.password)
     code = self.seller.create_store(self.store_id)
     assert code == 200
     book_db = book.BookDB()
     self.books = book_db.get_book_id(0, 2)
     for bk in self.books:
         code = self.seller.add_book(self.store_id, 0, bk, 20)
         assert code == 200
     yield
    def pre_run_initialization(self):
        self.seller_id = "test_get_comment_by_book_id_seller_id_{}".format(
            str(uuid.uuid1()))
        self.store_id = "test_get_comment_by_book_id_store_id_{}".format(
            str(uuid.uuid1()))
        self.seller_password = self.seller_id

        self.seller = register_new_seller(self.seller_id, self.seller_password)

        self.seller.create_store(self.store_id)

        book_db = book.BookDB()
        self.books = book_db.get_book_info(0, 5)
        self.book_id_list = []
        self.book_info_list = []

        for bk in self.books:
            code = self.seller.add_book(self.store_id, 0, bk)
            assert code == 200
            code = self.seller.add_stock_level(self.seller_id, self.store_id,
                                               bk.id, 100000)
            assert code == 200
            num = random.randint(1, 100)
            self.book_id_list.append((bk.id, num))
            self.book_info_list.append((bk, num))

        for i in range(10):
            self.buyer_id = "test_change_status_to_unreceived_buyer_id_{}".format(
                str(uuid.uuid1()))
            self.buyer_password = self.buyer_id
            self.buyer = register_new_buyer(self.buyer_id, self.buyer_password)

            # 生成订单
            code, self.order_id = self.buyer.new_order(self.store_id,
                                                       self.book_id_list)
            assert code == 200

            self.total_price = 0
            for item in self.book_info_list:
                bk: Book = item[0]
                num = item[1]
                self.total_price = self.total_price + bk.price * num
            code = self.buyer.add_funds(self.total_price)
            assert code == 200

            code = self.buyer.payment(self.order_id)
            assert code == 200

            code = change_unreceived(self.seller_id, self.seller_password,
                                     self.store_id, self.order_id)
            assert code == 200

            code = change_received(self.buyer_id, self.buyer_password,
                                   self.order_id)
            assert code == 200

            code, self.orderdetails = track_order_by_order_id(
                self.buyer_id, self.buyer_password, self.order_id)
            assert code == 200
            for orderdeatail in self.orderdetails:
                orderdetail_id = orderdeatail['orderdetail_id']
                self.star = random.randint(1, 5)
                self.content = ""
                for j in range(random.randint(2, 5)):
                    self.content += chr(random.randint(0x4e00, 0x9fbf))
                code = add_comment(self.buyer_id, self.buyer_password,
                                   orderdetail_id, self.star, self.content)
                assert code == 200