From 01d0132c1fa371f55f493d13419b70308f13d405 Mon Sep 17 00:00:00 2001 From: Daniel Schep Date: Thu, 7 Dec 2017 11:47:52 -0500 Subject: [PATCH] Raise an error if selecting column that exists more than once This caused a pretty major bug for us also, closes #108 --- records.py | 2 ++ tests/test_records.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/records.py b/records.py index 2a9bb56..e4fa856 100644 --- a/records.py +++ b/records.py @@ -52,6 +52,8 @@ class Record(object): # Support for string-based lookup. if key in self.keys(): i = self.keys().index(key) + if self.keys().count(key) > 1: + raise KeyError("Record contains multiple '{}' fields.".format(key)) return self.values()[i] raise KeyError("Record contains no '{}' field.".format(key)) diff --git a/tests/test_records.py b/tests/test_records.py index 722591f..7e42731 100644 --- a/tests/test_records.py +++ b/tests/test_records.py @@ -97,3 +97,9 @@ class TestRecord: assert key in _dir for key in dir(object): assert key in _dir + + def test_record_duplicate_column(self): + keys, values = ['id', 'name', 'email', 'email'], [1, '', '', ''] + record = records.Record(keys, values) + with raises(KeyError): + record['email']