def test_create(self): rep = ProdRepository() id1 = rep.create('5bd897f8af13c78fe908cb98', 2) id2 = rep.create('5bd897f8af13c78fe908cb98', 2) self.assertNotEqual(id1, id2) rep.delete(id1) rep.delete(id2)
def delete(self, prod_id): repo = ProdRepository() app.logger.info( 'Получен запрос на удаление товара с идентификатором %s' % prod_id) abort_if_mag_doesnt_exist(prod_id, repo) repo.delete(prod_id) response = app.make_response("Prod %s deleted successfully" % prod_id) response.status_code = 204 app.logger.info('Товар с идентификатором %s успешно удален' % prod_id) return response
def get(self, prod_id): repo = ProdRepository() app.logger.info( 'Получен запрос на получение информации о товаре с идентификатором %s' % prod_id) abort_if_mag_doesnt_exist(prod_id, repo) prod = repo.get(prod_id) response = app.make_response("") response.status_code = 200 response.content_type = "application/json" response.data = prod.to_json() app.logger.info( 'Запрос на получение информации о товаре с идентификатором %s успешно обработан' % prod_id) return response
def post(self): repo = ProdRepository() app.logger.info('Получен запрос на создание (покупку) Товара') try: payload = jsonpickle.decode(flask.request.data) except: payload = {"mag_id": "5bd897f8af13c78fe908cb98", "cell": 1} prod_id = repo.create(payload["mag_id"], payload["cell"]) prod = repo.get(prod_id) response = app.make_response("") response.content_type = "application/json" response.status_code = 201 response.data = prod.to_json() app.logger.info('Товар с идентификатором %s успешно создан (куплен)' % prod_id) return response
def get(self): repo = ProdRepository() app.logger.info('Получен запрос на получение списка товаров') try: args = self.parser.parse_args(strict=True) except: args = {'page': 1, 'page_size': 5} app.logger.info( 'Номер страницы: %d; количество товаров на странице: %d' % (args['page'], args['page_size'])) prod_list, is_prev_page, is_next_page = repo.read_paginated( page_number=args['page'], page_size=args['page_size']) prods = '' for prod in prod_list: prods += prod.to_json() + '\n' dictr = {"is_prev_page": is_prev_page, "is_next_page": is_next_page} prods += "\n" + json.dumps(dictr) response = app.make_response("") response.content_type = "application/json" response.status_code = 200 response.data = prods app.logger.info('Запрос на получение списка товаров успешно обработан') return response
def test_get_right(self): rep = ProdRepository() prod_id = rep.create(mag_id='5bfbb05b102bd23cdc85f75a', prod_col=1) prod1 = rep.get(prod_id) prod2 = Prod(prod_id=fields.ObjectId(prod_id), mag_id='5bfbb05b102bd23cdc85f75a', prod_col=1) self.assertEqual(prod1, prod2) rep.delete(prod_id)
def test_exists_false(self): rep = ProdRepository() boolean = rep.exists('5bd8ad1daf') self.assertFalse(boolean)
def test_exists_true(self): rep = ProdRepository() prod_id = rep.create(mag_id='5bfbb05b102bd23cdc85f75a', prod_col=1) boolean = rep.exists(prod_id) self.assertTrue(boolean) rep.delete(prod_id)
def test_delete_existed(self): rep = ProdRepository() id1 = rep.create('5bd897f8af13c78fe908cb98', 2) rep.delete(id1) self.assertFalse(rep.exists(id1))
def test_read_paginated(self): rep = ProdRepository() prods = rep.read_paginated(1, 5) self.assertLessEqual(len(prods), 5)
def test_get_error(self): rep = ProdRepository() prod = rep.get('5bd89fd9') self.assertIsNone(prod)