Skip to content

Commit

Permalink
Require and use lowercase names for DatabaseDict tables.
Browse files Browse the repository at this point in the history
  • Loading branch information
TallJimbo committed May 4, 2019
1 parent 7b5db25 commit b8c1ebc
Show file tree
Hide file tree
Showing 7 changed files with 14 additions and 12 deletions.
2 changes: 1 addition & 1 deletion config/datastores/posixDatastore.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ datastore:
cls: lsst.daf.butler.datastores.posixDatastore.PosixDatastore
root: <butlerRoot>/datastore
records:
table: PosixDatastoreRecords
table: posix_datastore_records
create: true
templates:
# valid_first and valid_last here are YYYYMMDD; we assume we'll switch to
Expand Down
2 changes: 2 additions & 0 deletions python/lsst/daf/butler/registries/sqlRegistryDatabaseDict.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ def __init__(self, config, types, key, value, registry, lengths=None):
raise TypeError("No type provided for key {}".format(key))
if not types.keys() >= frozenset(value._fields):
raise TypeError("No type(s) provided for field(s) {}".format(set(value._fields) - types.keys()))
if not config["table"].islower():
raise ValueError(f"DatabaseDict tablename {config['table']} is not lowercase.")
self._key = key
self._value = value
self._table = Table(config["table"], self.registry._schema.metadata, *allColumns, *allConstraints)
Expand Down
2 changes: 1 addition & 1 deletion tests/config/basic/posixDatastore2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ datastore:
cls: lsst.daf.butler.datastores.posixDatastore.PosixDatastore
root: <butlerRoot>/butler_test_repository2
records:
table: PosixDatastoreRecords2
table: posix_datastore_records_2
templates:
default: "{run:02d}/{datasetType}.{component:?}/{tract:?}/{patch:?}/{physical_filter:?}/{instrument:?}_{visit:?}"
calexp: "{run:02d}/{datasetType}.{component:?}/{datasetType}_v{visit}_f{physical_filter:?}_{component:?}"
Expand Down
2 changes: 1 addition & 1 deletion tests/config/basic/posixDatastore2P.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ datastore:
cls: lsst.daf.butler.datastores.posixDatastore.PosixDatastore
root: <butlerRoot>/butler_test_repository2
records:
table: PosixDatastoreRecords2
table: posix_datastore_records_2
constraints:
accept:
- metric
Expand Down
2 changes: 1 addition & 1 deletion tests/config/testConfigs/datastores/posixDatastore.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
datastore:
records:
table: OverrideRecord
table: override_record
2 changes: 1 addition & 1 deletion tests/test_butler.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ def testSearchPath(self):

key = ("datastore", "records", "table")
self.assertNotEqual(config1[key], config2[key])
self.assertEqual(config2[key], "OverrideRecord")
self.assertEqual(config2[key], "override_record")


class ButlerTests:
Expand Down
14 changes: 7 additions & 7 deletions tests/test_sqlDatabaseDict.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def testKeyInValue(self):
"""Test that the key is not permitted to be part of the value."""
value = namedtuple("TestValue", ["x", "y", "z"])
with self.assertRaises(ValueError):
self.registry.makeDatabaseDict(table="TestTable", key=self.key, types=self.types, value=value)
self.registry.makeDatabaseDict(table="test_table", key=self.key, types=self.types, value=value)

def testKeyNotInValue(self):
"""Test when the value does not include the key."""
Expand All @@ -82,7 +82,7 @@ def testKeyNotInValue(self):
0: value(y="zero", z=0.0),
1: value(y="one", z=0.1),
}
d = self.registry.makeDatabaseDict(table="TestTable", key=self.key, types=self.types, value=value)
d = self.registry.makeDatabaseDict(table="test_table", key=self.key, types=self.types, value=value)
self.checkDatabaseDict(d, data)

def testLengths(self):
Expand All @@ -92,7 +92,7 @@ def testLengths(self):
0: value(y="passes", z=0.0),
1: value(y="fails too long", z=0.1),
}
d = self.registry.makeDatabaseDict(table="TestTable", key=self.key, types=self.types, value=value,
d = self.registry.makeDatabaseDict(table="test_table", key=self.key, types=self.types, value=value,
lengths={"y": 6})

# This insert meets the constraint
Expand All @@ -109,7 +109,7 @@ def testBadValueTypes(self):
data = {
0: value(y=0, z="zero"),
}
d = self.registry.makeDatabaseDict(table="TestTable", key=self.key, types=self.types, value=value)
d = self.registry.makeDatabaseDict(table="test_table", key=self.key, types=self.types, value=value)
with self.assertRaises(TypeError):
d[0] = data[0]

Expand All @@ -119,7 +119,7 @@ def testBadKeyTypes(self):
data = {
0: value(y="zero", z=0.0),
}
d = self.registry.makeDatabaseDict(table="TestTable", key=self.key, types=self.types, value=value)
d = self.registry.makeDatabaseDict(table="test_table", key=self.key, types=self.types, value=value)
d["zero"] = data[0]

def testExtraFieldsInTable(self):
Expand All @@ -134,7 +134,7 @@ def testExtraFieldsInTable(self):
0: value(y="zero"),
1: value(y="one"),
}
d = self.registry.makeDatabaseDict(table="TestTable", key=self.key, types=self.types, value=value)
d = self.registry.makeDatabaseDict(table="test_table", key=self.key, types=self.types, value=value)
self.checkDatabaseDict(d, data)

def testExtraFieldsInValue(self):
Expand All @@ -144,7 +144,7 @@ def testExtraFieldsInValue(self):
"""
value = namedtuple("TestValue", ["y", "a"])
with self.assertRaises(TypeError):
self.registry.makeDatabaseDict(table="TestTable", key=self.key, types=self.types, value=value)
self.registry.makeDatabaseDict(table="test_table", key=self.key, types=self.types, value=value)


if __name__ == "__main__":
Expand Down

0 comments on commit b8c1ebc

Please sign in to comment.