def test_submit_points_log_records(self, mock_get_osm_api): import logging self.log_records = log_records = [] class TestingHandler(logging.Handler): def emit(self, record): log_records.append(self.format(record)) self.log_handler = TestingHandler() self.db_logger = logging.getLogger('osmpoint.database.osm') self.db_logger.addHandler(self.log_handler) self.addCleanup(self.db_logger.removeHandler, self.log_handler) mock_osm = mock_get_osm_api.return_value mock_osm.ChangesetCreate.return_value = 999 mock_osm.NodeCreate.return_value = {'a': 'b', 'id': 13} client = self.app.test_client() p_id = database.add_point(46.06, 24.10, 'Eau de Web', 'link1', 'pub', 'my-open-id') log_records[:] = [] database.submit_points_to_osm([p_id]) self.assertEqual(self.log_records, [ "Begin OSM changeset 999", "OSM point: {'a': 'b', 'id': 13}", "OSM changeset committed", ])
def test_submit_points_log_records(self, mock_get_osm_api): import logging self.log_records = log_records = [] class TestingHandler(logging.Handler): def emit(self, record): log_records.append(self.format(record)) self.log_handler = TestingHandler() self.db_logger = logging.getLogger('osmpoint.database') self.db_logger.addHandler(self.log_handler) self.addCleanup(self.db_logger.removeHandler, self.log_handler) mock_osm = mock_get_osm_api.return_value mock_osm.ChangesetCreate.return_value = 999 mock_osm.NodeCreate.return_value = {'a': 'b', 'id': 13} client = self.app.test_client() p1 = self.add_point(46.06, 24.10, 'Eau de Web', 'link1', 'pub', 'my-open-id') log_records[:] = [] database.submit_points_to_osm([p1]) self.assertEqual(len(self.log_records), 4) self.assertEqual(self.log_records[0], "Begin OSM changeset 999") self.assertEqual(self.log_records[1], "OSM point: {'a': 'b', 'id': 13}") self.assertEqual(self.log_records[3], "OSM changeset committed")
def test_changesets(self, mock_get_osm_api): mock_osm = mock_get_osm_api.return_value client = self.app.test_client() p1_id = database.add_point(46.06, 24.10, 'Eau de Web', 'link1', 'pub', 'my-open-id') p2_id = database.add_point(46.07, 24.11, 'blabla', '', 'bar', 'my-open-id') values = [13, 45] mock_osm.ChangesetCreate.return_value = 13 mock_osm.NodeCreate.side_effect = lambda *args, **kwargs: {'id': values.pop(0)} database.submit_points_to_osm([p1_id, p2_id]) self.db.session.commit() rdb = flask.current_app.rdb p1 = rdb.get_object('point', p1_id) p2 = rdb.get_object('point', p2_id) self.assertEquals(p1['osm_id'], 13) self.assertEquals(p2['osm_id'], 45) self.assertEquals(mock_osm.ChangesetCreate.call_count, 1) tags1 = {'name': 'Eau de Web', 'website': 'link1', 'amenity': 'pub', 'source': 'poi.grep.ro'} tags2 = {'name': 'blabla', 'amenity': 'bar', 'source': 'poi.grep.ro'} self.assertEquals(mock_osm.NodeCreate.call_args_list, [ (({u'lat': 46.06, u'lon': 24.1, u'tag': tags1},), {}), (({u'lat': 46.07, u'lon': 24.11, u'tag': tags2},), {})]) self.assertEquals(mock_osm.ChangesetClose.call_count, 1)