def test_reads_layer_specified_by_segment(self, fake_open, fake_shape, fake_dumps): fake_collection = self._get_fake_collection() fake_open.return_value = fake_collection spec = SourceSpec('http://example.com', segment=5) fstor = Mock(spec=DelayedOpen) fstor._fs = Mock() source = ShapefileSource(spec, fstor) next(source._get_row_gen()) self.assertEqual(len(fake_open.mock_calls), 1) self.assertEqual(fake_open.call_args_list[0][1]['layer'], 5, 'open function was called with wrong layer.')
def test_populates_columns_of_the_spec(self, fake_open, fake_get, fake_shape, fake_dumps): fake_collection = self._get_fake_collection() fake_open.return_value = fake_collection fake_get.return_value = [{'name': 'col1', 'type': 'int'}] spec = SourceSpec('http://example.com') fstor = Mock(spec=DelayedOpen) fstor._fs = Mock() source = ShapefileSource(spec, fstor) next(source._get_row_gen()) self.assertEqual(len(source.spec.columns), 1) self.assertEqual(source.spec.columns[0].name, 'col1') self.assertEqual(len(fake_open.mock_calls), 1) self.assertEqual(len(fake_get.mock_calls), 2)
def test_reads_layer_specified_by_segment(self, fake_open, fake_shape, fake_dumps): fake_collection = self._get_fake_collection() fake_open.return_value = fake_collection spec = SourceSpec('http://example.com', segment=5) fstor = Mock(spec=DelayedOpen) fstor._fs = Mock() source = ShapefileSource(spec, fstor) next(source._get_row_gen()) self.assertEqual(len(fake_open.mock_calls), 1) self.assertEqual( fake_open.call_args_list[0][1]['layer'], 5, 'open function was called with wrong layer.')
def test_last_element_in_the_row_is_wkt(self, fake_open, fake_get, fake_shape, fake_dumps): fake_collection = self._get_fake_collection() fake_open.return_value = fake_collection fake_shape.expects_call().is_a_stub() fake_dumps.return_value = 'I AM FAKE WKT' fake_get.return_value = [{'name': 'col1', 'type': 'int'}] spec = SourceSpec('http://example.com') fstor = Mock(spec=DelayedOpen) fstor._fs = Mock() source = ShapefileSource(spec, fstor) row_gen = source._get_row_gen() first_row = next(row_gen) self.assertEqual(first_row[-1], 'I AM FAKE WKT') self.assertEqual(len(fake_open.mock_calls), 1) self.assertEqual(len(fake_get.mock_calls), 2)
def test_saves_header(self, fake_open, fake_get, fake_shape, fake_dumps): fake_collection = self._get_fake_collection() fake_open.return_value = fake_collection fake_get.return_value = [ {'name': 'id', 'type': 'int'}, {'name': 'col1', 'type': 'int'}, {'name': 'geometry', 'type': 'geometry_type'}] spec = SourceSpec('http://example.com') fstor = Mock(spec=DelayedOpen) fstor._fs = Mock() source = ShapefileSource(spec, fstor) next(source._get_row_gen()) self.assertEqual(source._headers, ['id', 'col1', 'geometry']) self.assertEqual(len(fake_open.mock_calls), 1) self.assertEqual(len(fake_get.mock_calls), 2)
def test_converts_row_id_to_integer(self, fake_open, fake_get, fake_shape, fake_dumps): fake_collection = self._get_fake_collection() fake_open.return_value = fake_collection fake_shape.expects_call().is_a_stub() fake_dumps.expects_call().is_a_stub() fake_get.return_value = [{'name': 'col1', 'type': 'int'}] spec = SourceSpec('http://example.com') fstor = Mock(spec=DelayedOpen) fstor._fs = Mock() source = ShapefileSource(spec, fstor) row_gen = source._get_row_gen() first_row = next(row_gen) self.assertEqual(first_row[0], 0) self.assertEqual(len(fake_open.mock_calls), 1) self.assertEqual(len(fake_get.mock_calls), 2)
def test_saves_header(self, fake_open, fake_get, fake_shape, fake_dumps): fake_collection = self._get_fake_collection() fake_open.return_value = fake_collection fake_get.return_value = [{ 'name': 'id', 'type': 'int' }, { 'name': 'col1', 'type': 'int' }, { 'name': 'geometry', 'type': 'geometry_type' }] spec = SourceSpec('http://example.com') fstor = Mock(spec=DelayedOpen) fstor._fs = Mock() source = ShapefileSource(spec, fstor) next(source._get_row_gen()) self.assertEqual(source._headers, ['id', 'col1', 'geometry']) self.assertEqual(len(fake_open.mock_calls), 1) self.assertEqual(len(fake_get.mock_calls), 2)