def _test_save_item_common_body(self, data_portion_list, expected):
     for data_portion in data_portion_list:
         self._logger.info('save_item({source:s}, {data_item!s}) enter'.format(source=data_portion.source_id, data_item=data_portion.data))
         self._logger.info('_save_item_impl({source:s}, {data_item!s}) enter'.format(source=data_portion.source_id, data_item=data_portion.data))
         self._logger.info('_save_item_impl({source:s}, {data_item!s}) exit'.format(source=data_portion.source_id, data_item=data_portion.data))
         self._logger.info('save_item({source:s}, {data_item!s}) exit'.format(source=data_portion.source_id, data_item=data_portion.data))
     self._mox.ReplayAll()
     storage = SqliteStorage(self._db_manager.connection_string, self._logger)
     for data_portion in data_portion_list:
         storage.save_item(data_portion.source_id, data_portion.data)
     actual = self._db_manager.execute_query(self._query)
     self._check_data(expected, actual)
     self._mox.VerifyAll()
 def test_save_item_with_exception(self):
     data_portion = DataPortion('source1', DataItem('category1', 'some data'))
     self._logger.info("save_item({source:s}, {data_item!s}) enter".format(source=data_portion.source_id, data_item=data_portion.data))
     self._connection.cursor().AndReturn(self._cursor)
     self._logger.info("_save_item_impl({source:s}, {data_item!s}) enter".format(source=data_portion.source_id, data_item=data_portion.data))
     self._cursor.execute(self._query_str, (data_portion.source_id, data_portion.data.category, data_portion.data.data)).AndRaise(CustomTestException())
     self._logger.exception("exception in _save_item_impl({source:s}, {data_item!s})".format(source=data_portion.source_id, data_item=data_portion.data))
     self._connection.close()
     self._logger.exception("exception in save_item({source:s}, {data_item!s})".format(source=data_portion.source_id, data_item=data_portion.data))
     self._mox.ReplayAll()
     storage = SqliteStorage(lambda: self._connection, self._logger)
     self.assertRaises(CustomTestException, lambda: storage.save_item(data_portion.source_id, data_portion.data))
     self._mox.VerifyAll()
 def _test_save_items_common_body(self, data_portion_list):
     for data_portion in data_portion_list:
         self._logger.info("save_item({source:s}, {data_item!s}) enter".format(source=data_portion.source_id, data_item=data_portion.data))
         self._connection.cursor().AndReturn(self._cursor)
         self._logger.info("_save_item_impl({source:s}, {data_item!s}) enter".format(source=data_portion.source_id, data_item=data_portion.data))
         self._cursor.execute(self._query_str, (data_portion.source_id, data_portion.data.category, data_portion.data.data))
         self._logger.info("_save_item_impl({source:s}, {data_item!s}) exit".format(source=data_portion.source_id, data_item=data_portion.data))
         self._connection.commit()
         self._logger.info("save_item({source:s}, {data_item!s}) exit".format(source=data_portion.source_id, data_item=data_portion.data))
         self._connection.close()
     self._mox.ReplayAll()
     storage = SqliteStorage(lambda: self._connection, self._logger)
     for data_portion in data_portion_list:
         storage.save_item(data_portion.source_id, data_portion.data)
     self._mox.VerifyAll()
 def test_save_data_with_exception(self):
     data_item = DataItem('category1', 'some data')
     data_portion = DataPortion('source1', [data_item])
     self._logger.info('save_data({0:s}, data_list) enter'.format(data_portion.source_id))
     self._connection.cursor().AndReturn(self._cursor)
     self._logger.info("_save_item_impl({source:s}, {data_item!s}) enter".format(source=data_portion.source_id, data_item=data_item))
     #noinspection PyUnresolvedReferences
     self._cursor.execute(self._query_str, (data_portion.source_id, data_item.category, data_item.data)).AndRaise(CustomTestException())
     #inspection PyUnresolvedReferences
     self._logger.exception("exception in _save_item_impl({source:s}, {data_item!s})".format(source=data_portion.source_id, data_item=data_item))
     self._connection.close()
     self._logger.exception('exception in save_data({0:s}, data_list)'.format(data_portion.source_id))
     self._mox.ReplayAll()
     storage = SqliteStorage(lambda: self._connection, self._logger)
     self.assertRaises(CustomTestException, lambda: storage.save_data(data_portion.source_id, data_portion.data))
     self._mox.VerifyAll()