diff --git a/census/core.py b/census/core.py index 2101e17..a938075 100644 --- a/census/core.py +++ b/census/core.py @@ -324,6 +324,10 @@ def tables(self, *args, **kwargs): self._switch_endpoints(kwargs.get('year', self.default_year)) return super(ACSClient, self).tables(*args, **kwargs) + def fields(self, *args, **kwargs): + self._switch_endpoints(kwargs.get('year', self.default_year)) + return super(ACSClient, self).fields(*args, **kwargs) + def get(self, *args, **kwargs): self._switch_endpoints(kwargs.get('year', self.default_year)) @@ -466,6 +470,10 @@ def tables(self, *args, **kwargs): self._switch_endpoints(kwargs.get('year', self.default_year)) return super(SF1Client, self).tables(*args, **kwargs) + def fields(self, *args, **kwargs): + self._switch_endpoints(kwargs.get('year', self.default_year)) + return super(SF1Client, self).fields(*args, **kwargs) + def get(self, *args, **kwargs): self._switch_endpoints(kwargs.get('year', self.default_year)) @@ -548,6 +556,10 @@ def tables(self, *args, **kwargs): self._switch_endpoints(kwargs.get('year', self.default_year)) return super(PLClient, self).tables(*args, **kwargs) + def fields(self, *args, **kwargs): + self._switch_endpoints(kwargs.get('year', self.default_year)) + return super(PLClient, self).fields(*args, **kwargs) + def get(self, *args, **kwargs): self._switch_endpoints(kwargs.get('year', self.default_year)) diff --git a/census/tests/test_census.py b/census/tests/test_census.py index 2286a28..58c027f 100644 --- a/census/tests/test_census.py +++ b/census/tests/test_census.py @@ -152,6 +152,16 @@ def test_tables(self): self.client('sf1').tables() self.client('pl').tables() + def test_fields(self): + # Regression for #138: fields() needs the same endpoint switch + # that tables() and get() do. Otherwise calling fields() before + # anything else on an ACS/SF1/PL client hits the wrong URL and + # 404s. + self.client('acs5').fields() + self.client('acs5').fields(2010) + self.client('sf1').fields() + self.client('pl').fields() + def test_acs5(self): tests = (