Example #1
0
 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)
Example #2
0
 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
Example #3
0
 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
Example #4
0
 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
Example #5
0
 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
Example #6
0
 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)
Example #7
0
 def test_exists_false(self):
     rep = ProdRepository()
     boolean = rep.exists('5bd8ad1daf')
     self.assertFalse(boolean)
Example #8
0
 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)
Example #9
0
 def test_delete_existed(self):
     rep = ProdRepository()
     id1 = rep.create('5bd897f8af13c78fe908cb98', 2)
     rep.delete(id1)
     self.assertFalse(rep.exists(id1))
Example #10
0
 def test_read_paginated(self):
     rep = ProdRepository()
     prods = rep.read_paginated(1, 5)
     self.assertLessEqual(len(prods), 5)
Example #11
0
 def test_get_error(self):
     rep = ProdRepository()
     prod = rep.get('5bd89fd9')
     self.assertIsNone(prod)