]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- merge FromObj cleanup, immutable .c attribute patch, [ticket:1917]
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 20 Nov 2010 20:35:43 +0000 (15:35 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 20 Nov 2010 20:35:43 +0000 (15:35 -0500)
1  2 
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/query.py
lib/sqlalchemy/schema.py
lib/sqlalchemy/util.py
test/engine/test_metadata.py
test/sql/test_compiler.py

Simple merge
Simple merge
index 50df8b9b6b0a06284be9a613f5fe8f61a1e13173,e7a5d6e464a39d439f1ce7e371b8b2f301b584ea..ff953cef793f749dbb23837e4e23337f6705d0b8
@@@ -229,8 -227,9 +229,8 @@@ class Table(SchemaItem, expression.Tabl
          self.constraints = set()
          self._columns = expression.ColumnCollection()
          self._set_primary_key(PrimaryKeyConstraint())
-         self._foreign_keys = util.OrderedSet()
+         self.foreign_keys = util.OrderedSet()
          self._extra_dependencies = set()
 -        self.ddl_listeners = util.defaultdict(list)
          self.kwargs = {}
          if self.schema is not None:
              self.fullname = "%s.%s" % (self.schema, self.name)
Simple merge
index 59aa4c354311a6c26931d76682c05ec9828d3406,b3a9cef2e5393e8e361eb69edb52deceff20a772..1feb4d9e2972405edb6440a0687d0faf273e71ca
@@@ -77,75 -77,30 +77,72 @@@ class MetaDataTest(TestBase, ComparesTa
              t = Table('foo%d' % i, m, cx)
          eq_(msgs, ['attach foo0.foo', 'attach foo1.foo', 'attach foo2.foo'])
          
 +    def test_schema_collection_add(self):
 +        metadata = MetaData()
          
 -    def test_dupe_tables(self):
 +        t1 = Table('t1', metadata, Column('x', Integer), schema='foo')
 +        t2 = Table('t2', metadata, Column('x', Integer), schema='bar')
 +        t3 = Table('t3', metadata, Column('x', Integer))
 +        
 +        eq_(metadata._schemas, set(['foo', 'bar']))
 +        eq_(len(metadata.tables), 3)
 +    
 +    def test_schema_collection_remove(self):
 +        metadata = MetaData()
 +        
 +        t1 = Table('t1', metadata, Column('x', Integer), schema='foo')
 +        t2 = Table('t2', metadata, Column('x', Integer), schema='bar')
 +        t3 = Table('t3', metadata, Column('x', Integer), schema='bar')
 +        
 +        metadata.remove(t3)
 +        eq_(metadata._schemas, set(['foo', 'bar']))
 +        eq_(len(metadata.tables), 2)
 +
 +        metadata.remove(t1)
 +        eq_(metadata._schemas, set(['bar']))
 +        eq_(len(metadata.tables), 1)
 +    
 +    def test_schema_collection_remove_all(self):
 +        metadata = MetaData()
 +        
 +        t1 = Table('t1', metadata, Column('x', Integer), schema='foo')
 +        t2 = Table('t2', metadata, Column('x', Integer), schema='bar')
 +
 +        metadata.clear()
 +        eq_(metadata._schemas, set())
 +        eq_(len(metadata.tables), 0)
 +    
 +    def test_metadata_tables_immutable(self):
          metadata = MetaData()
-             AttributeError,
 +        
 +        t1 = Table('t1', metadata, Column('x', Integer))
 +        assert 't1' in metadata.tables
 +        
 +        assert_raises(
-         
++            TypeError,
 +            lambda: metadata.tables.pop('t1')
 +        )
-         metadata = MetaData()
++    
++    @testing.provide_metadata
 +    def test_dupe_tables(self):
          t1 = Table('table1', metadata, 
              Column('col1', Integer, primary_key=True),
              Column('col2', String(20)))
  
--        metadata.bind = testing.db
          metadata.create_all()
--        try:
--            try:
--                t1 = Table('table1', metadata, autoload=True)
--                t2 = Table('table1', metadata, 
--                    Column('col1', Integer, primary_key=True),
--                    Column('col2', String(20)))
--                assert False
--            except tsa.exc.InvalidRequestError, e:
--                assert str(e) \
--                    == "Table 'table1' is already defined for this "\
--                    "MetaData instance.  Specify 'useexisting=True' "\
--                    "to redefine options and columns on an existing "\
--                    "Table object."
--        finally:
--            metadata.drop_all()
++        t1 = Table('table1', metadata, autoload=True)
++        def go():
++            t2 = Table('table1', metadata, 
++                Column('col1', Integer, primary_key=True),
++                Column('col2', String(20)))
++        assert_raises_message(
++            tsa.exc.InvalidRequestError,
++            "Table 'table1' is already defined for this "\
++            "MetaData instance.  Specify 'useexisting=True' "\
++            "to redefine options and columns on an existing "\
++            "Table object.",
++            go
++        )
      
      def test_fk_copy(self):
          c1 = Column('foo', Integer)
Simple merge