self.mapper = mapper.class_mapper(self.argument(), compile=False)
else:
raise sa_exc.ArgumentError("relation '%s' expects a class or a mapper argument (received: %s)" % (self.key, type(self.argument)))
- assert isinstance(self.mapper, mapper.Mapper), self.mapper
+
+ # TODO: an informative assertion ?
+ assert isinstance(self.mapper, mapper.Mapper)
# accept callables for other attributes which may require deferred initialization
for attr in ('order_by', 'primaryjoin', 'secondaryjoin', 'secondary', '_foreign_keys', 'remote_side'):
try:
class_manager = attributes.manager_of_class(class_)
mapper = class_manager.mapper
+
+ # HACK until [ticket:1142] is complete
+ if mapper is None:
+ raise exc.NO_STATE
+
except exc.NO_STATE:
if not raiseerror:
return
create_session().query(User).first()
eq_(recon, ['go'])
+ @testing.resolve_artifact_names
+ def test_unmapped_error(self):
+ mapper(Address, addresses)
+ sa.orm.clear_mappers()
+
+ mapper(User, users, properties={
+ 'addresses':relation(Address)
+ })
+
+ self.assertRaises(sa.orm.exc.UnmappedClassError, sa.orm.compile_mappers)
+
class OptionsTest(_fixtures.FixtureTest):
@testing.fails_on('maxdb')