class _BundleEntity(_QueryEntity):
def __init__(self, query, bundle, setup_entities=True):
query._entities.append(self)
- self.bundle = self.entity_zero = bundle
+ self.bundle = bundle
self.type = type(bundle)
self._label_name = bundle.name
self._entities = []
self.filter_fn = lambda item: item
+ @property
+ def entity_zero(self):
+ for ent in self._entities:
+ ezero = ent.entity_zero
+ if ezero is not None:
+ return ezero
+ else:
+ return None
+
def corresponds_to(self, entity):
# TODO: this seems to have no effect for
# _ColumnEntity either
((9, 'd8d1', 'd8d2'),), ((10, 'd9d1', 'd9d2'),)]
)
+ def test_filter_by(self):
+ Data = self.classes.Data
+
+ b1 = Bundle('b1', Data.id, Data.d1, Data.d2)
+
+ sess = Session()
+
+ self.assert_compile(
+ sess.query(b1).filter_by(d1='d1'),
+ "SELECT data.id AS data_id, data.d1 AS data_d1, "
+ "data.d2 AS data_d2 FROM data WHERE data.d1 = :d1_1"
+ )
+
def test_clause_expansion(self):
Data = self.classes.Data