[Sqlalchemy-tickets] Issue #3784: Test failures on OpenBSD (zzzeek/sqlalchemy)
Brought to you by:
zzzeek
From: Edd B. <iss...@bi...> - 2016-08-30 17:53:42
|
New issue 3784: Test failures on OpenBSD https://bitbucket.org/zzzeek/sqlalchemy/issues/3784/test-failures-on-openbsd Edd Barrett: Hi, Trying to update OpenBSD's py-sqlalchemy package to 1.0.14. Three tests currently fail. py.test output below. Thanks ``` > /usr/ports/pobj/py-sqlalchemy-1.0.14/SQLAlchemy-1.0.14/lib/sqlalchemy/testing/suite/test_update_delete.py(54) 48 def test_delete(self): 49 t = self.tables.plain_pk 50 r = config.db.execute( 51 t.delete().where(t.c.id == 2) 52 ) 53 assert not r.is_insert 54 -> assert not r.returns_rows 55 eq_( 56 config.db.execute(t.select().order_by(t.c.id)).fetchall(), 57 [ 58 (1, "d1"), 59 (3, "d3") 60 ] 61 ) 30 def test_update(self): 31 t = self.tables.plain_pk 32 r = config.db.execute( 33 t.update().where(t.c.id == 2), 34 data="d2_new" 35 ) 36 assert not r.is_insert 37 -> assert not r.returns_rows 38 39 eq_( 40 config.db.execute(t.select().order_by(t.c.id)).fetchall(), 41 [ 42 (1, "d1"), 43 (2, "d2_new"), 44 (3, "d3") 45 ] 46 ) 980 def test_no_rowcount_on_selects_inserts(self): 981 """assert that rowcount is only called on deletes and updates. 982 983 This because cursor.rowcount may can be expensive on some dialects 984 such as Firebird, however many dialects require it be called 985 before the cursor is closed. 986 987 """ 988 989 metadata = self.metadata 990 991 engine = engines.testing_engine() 992 993 t = Table('t1', metadata, 994 Column('data', String(10)) 995 ) 996 metadata.create_all(engine) 997 998 with patch.object( 999 engine.dialect.execution_ctx_cls, "rowcount") as mock_rowcount: 1000 mock_rowcount.__get__ = Mock() 1001 engine.execute(t.insert(), 1002 {'data': 'd1'}, 1003 {'data': 'd2'}, 1004 {'data': 'd3'}) 1005 1006 eq_(len(mock_rowcount.__get__.mock_calls), 0) 1007 1008 eq_( 1009 engine.execute(t.select()).fetchall(), 1010 [('d1', ), ('d2', ), ('d3', )] 1011 ) 1012 eq_(len(mock_rowcount.__get__.mock_calls), 0) 1013 1014 engine.execute(t.update(), {'data': 'd4'}) 1015 1016 >> eq_(len(mock_rowcount.__get__.mock_calls), 1) 1017 1018 engine.execute(t.delete()) 1019 -> eq_(len(mock_rowcount.__get__.mock_calls), 2) (Pdb++) len(mock_rowcount.__get__.mock_calls) 0 ``` |