def _test_save_data_common_body(self, data_portion_list, expected):
     for data_portion in data_portion_list:
         self._logger.info('save_data({source:s}, data_list) enter'.format(source=data_portion.source_id))
         for data_item in data_portion.data:
             self._logger.info('_save_item_impl({source:s}, {data_item!s}) enter'.format(source=data_portion.source_id, data_item=data_item))
             self._logger.info('_save_item_impl({source:s}, {data_item!s}) exit'.format(source=data_portion.source_id, data_item=data_item))
         self._logger.info('save_data({source:s}, data_list) exit'.format(source=data_portion.source_id))
     self._mox.ReplayAll()
     storage = SqliteStorage(self._db_manager.connection_string, self._logger)
     for data_portion in data_portion_list:
         storage.save_data(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_data_common_body(self, data_portion_list):
     for data_portion in data_portion_list:
         self._logger.info('save_data({0:s}, data_list) enter'.format(data_portion.source_id))
         self._connection.cursor().AndReturn(self._cursor)
         for data_item in data_portion.data:
             self._logger.info("_save_item_impl({source:s}, {data_item!s}) enter".format(source=data_portion.source_id, data_item=data_item))
             self._cursor.execute(self._query_str, (data_portion.source_id, data_item.category, data_item.data))
             self._logger.info("_save_item_impl({source:s}, {data_item!s}) exit".format(source=data_portion.source_id, data_item=data_item))
         self._connection.commit()
         self._logger.info('save_data({0:s}, data_list) exit'.format(data_portion.source_id))
         self._connection.close()
     self._mox.ReplayAll()
     storage = SqliteStorage(lambda: self._connection, self._logger)
     for data_portion in data_portion_list:
         storage.save_data(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()