From 6eb617b9dd3b73d1c2dccd246b46ec79fabd8749 Mon Sep 17 00:00:00 2001 From: Jeff Tratner Date: Tue, 5 Nov 2013 22:15:04 -0500 Subject: [PATCH] Changeup tests to reflect drop=False default --- geopandas/geodataframe.py | 8 +------- tests/test_geodataframe.py | 24 ++++++++++-------------- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 5cfe206..032c48b 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1,7 +1,6 @@ from collections import OrderedDict import json import os -import warnings import fiona import numpy as np @@ -37,12 +36,6 @@ class GeoDataFrame(DataFrame): self.crs = crs if geometry is not None: self.set_geometry(geometry, inplace=True) - else: - if not 'geometry' in self: - warnings.warn("No geometry set in constructor. Geometric funcs" - " may not work. You can set geometry via the" - " geometry property or with the geometry" - " keyword argument") def __setattr__(self, attr, val): # have to special case geometry b/c pandas tries to use as column... @@ -291,6 +284,7 @@ class GeoDataFrame(DataFrame): elif isinstance(result, DataFrame) and geo_col in result: result.__class__ = GeoDataFrame result.crs = self.crs + result._geometry_column_name = geo_col elif isinstance(result, DataFrame) and geo_col not in result: result.__class__ = DataFrame result.crs = self.crs diff --git a/tests/test_geodataframe.py b/tests/test_geodataframe.py index c52b90f..ef3bc31 100644 --- a/tests/test_geodataframe.py +++ b/tests/test_geodataframe.py @@ -36,10 +36,11 @@ class TestDataFrame(unittest.TestCase): self.assertTrue(self.df2.crs == self.crs) def test_different_geo_colname(self): - data = {"A": range(5), "B": range(-5, 1), + data = {"A": range(5), "B": range(-5, 0), "location": [Point(x, y) for x, y in zip(range(5), range(5))]} df = GeoDataFrame(data, crs=self.crs, geometry='location') - tu.assert_geoseries_equal(df.geometry, data['location']) + locs = GeoSeries(data['location']) + tu.assert_geoseries_equal(df.geometry, locs) self.assert_('geometry' not in df) self.assertEqual(df.geometry.name, 'location') # internal implementation detail @@ -49,7 +50,7 @@ class TestDataFrame(unittest.TestCase): df2 = df.set_geometry(geom2) self.assert_('geometry' in df) self.assert_('location' in df) - tu.assert_geoseries_equal(df2.geometry, geom2) + tu.assert_geoseries_equal(df2.geometry, GeoSeries(geom2)) tu.assert_geoseries_equal(df2['location'], df['location']) def test_geometry_property(self): @@ -122,19 +123,14 @@ class TestDataFrame(unittest.TestCase): self.df['simplified_geometry'] = g_simplified df2 = self.df.set_geometry('simplified_geometry') - # Drop is true by default - self.assert_('simplified_geometry' not in df2) - - tu.assert_geoseries_equal(df2.geometry, g_simplified) - - def test_set_geometry_col_no_drop(self): - g = self.df.geometry - g_simplified = g.simplify(100) - self.df['simplified_geometry'] = g_simplified - df2 = self.df.set_geometry('simplified_geometry') + # Drop is false by default self.assert_('simplified_geometry' in df2) tu.assert_geoseries_equal(df2.geometry, g_simplified) - self.assert_(df2.geometry.name == 'simplified_geometry') + + # If True, drops column and renames to geometry + df3 = self.df.set_geometry('simplified_geometry', drop=True) + self.assert_('simplified_geometry' not in df3) + tu.assert_geoseries_equal(df3.geometry, g_simplified) def test_set_geometry_inplace(self): geom = [Point(x,y) for x,y in zip(range(5), range(5))]