Ejemplo n.º 1
0
 def chose_ware_ids_with_requirement(wares, categories, moderation, stock):
     """ Делаем пересечение условия для существующих товаров.
     :param wares: список товаров
     :param categories: список категорий
     :param moderation: модерирование
     :param stock: сток
     :return: список товаров с пересечениями
     """
     # делаем пересечение условий
     w_c = [funky.pluck(funcy.where(wares, managed_category=x), 'ware_id') for x in categories]
     w_m = [funky.pluck(funcy.where(wares, moderation_state=x), 'ware_id') for x in moderation]
     w_s = [funky.pluck(funcy.where(wares, stock_state=x), 'ware_id') for x in stock]
     return intersection_lists(w_c + w_m + w_s)
Ejemplo n.º 2
0
    def test_getWaresBatch(self, count_wares):
        """ Проверка метода getWaresBatch.
        Берём из БД Cassandra список из нескольких товаров.
        Берём из воркера Warehouse товары с идентификаторами товаров из БД.
        Сравниваем количество товаров общее количество товаров из БД и от воркера.
        Сравниваем товары с одинаковыми идентификаторами из БД и воркера.
        """
        service_log.run(self)

        # делаем выборку товаров из Cassandra
        wares_cassandra = databases.db1.warehouse.get_wares_with_limit(count_wares)
        self.deserialize_and_update_all_contents(wares_cassandra)

        # делаем выборку товаров из воркера
        service_log.put("Get ware, ware_id=%s from Cassandra." % str(funky.pluck(wares_cassandra, "ware_id")))
        wares_warehouse = services.warehouse.root.tframed.getWaresBatch(funky.pluck(wares_cassandra, "ware_id"))
        service_log.put("Data ware from worker Warehouse: %s" % str(wares_warehouse))

        self.check_wares(wares_worker=wares_warehouse, wares_cassandra=wares_cassandra)
Ejemplo n.º 3
0
 def clear_fav_users(user_id, fav_type, users):
     """ Очистить избранные товары пользователя, если таковые имеются.
     :param user_id: идентификатор пользователя
     :param fav_type: тип избранного
     :param users: список идентификаторов товаров
     """
     if users is not None:
         ware_ids = set(funky.pluck(users, "fav_usr_id"))
         param = FavoritesCheckMethods.get_FavoritesRemoveRequest(user_id, fav_type, fav_usr_ids=ware_ids)
         services.favorites.root.tframed.removeFavorites(param)
Ejemplo n.º 4
0
 def get_random_filtered_values(source, key):
     """ Делаем выборку значений из словаря по ключу.
     Из выборки составляем список уникальных элементов.
     Список может варьироваться от 1 до всех элементов.
     :param source: исходный словарь с данными
     :param key: ключ по которому происходит выборка
     :return: список значений
     """
     elements = list(set(funky.pluck(source, key)))
     p = list(set(map(lambda x: random.choice(elements), range(random.randint(1, len(elements))))))
     service_log.put("Get random values %s form filtered key (%s)" % (str(p), key))
     return p
Ejemplo n.º 5
0
    def test_remove_fav_users(self):
        """ Проверка удаления товаров в Избранное через метод removeFavorites.
        """
        service_log.run(self)

        before_fav_users = databases.db1.favorites.get_fav_users_by_user_id(self.user_id)
        self.assertIsNotNone(before_fav_users)
        user_ids = set(funky.pluck(before_fav_users, "fav_usr_id"))
        param = self.get_FavoritesRemoveRequest(self.user_id, fav_type=self.fav_type_user, fav_usr_ids=user_ids)
        result = services.favorites.root.tframed.removeFavorites(param)
        after_fav_users = databases.db1.favorites.get_fav_users_by_user_id(self.user_id)
        self.assertIsNone(result)
        self.assertIsNone(after_fav_users)
Ejemplo n.º 6
0
 def recent_contributors(self, n=None, branch=None):
     n = n or 10
     return funky.pluck(self.commit_info(end=n, branch=branch), "author")
Ejemplo n.º 7
0
 def recent_contributors(self, n=None, branch=None):
     n = n or 10
     return funky.pluck(self.commit_info(end=n, branch=branch), 'author')