Example #1
0
    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",
        ])
Example #2
0
    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")
Example #3
0
    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)