Skip to content

Commit 6ca6815

Browse files
author
percious
committed
okay, sorting really works now.
1 parent 1b6a9d7 commit 6ca6815

3 files changed

Lines changed: 38 additions & 31 deletions

File tree

sqlautocode/constants.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,9 @@ def getModel(metadata):
105105
print 'Trying to start IPython shell...',
106106
try:
107107
from IPython.Shell import IPShellEmbed
108-
print 'Success! Type <ctrl-d> to exit.'
108+
print 'Success! Press <ctrl-d> to exit.'
109109
print 'Available models:%%s'%%%s
110+
print '\\nTry something like: session.query(%s).all()'
110111
ipshell = IPShellEmbed()
111112
ipshell()
112113
except:

sqlautocode/declarative.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,13 @@
1616
from formatter import _repr_coltype_as
1717

1818
def by_name(a, b):
19-
return a.name>b.name
19+
if a.name>b.name:
20+
return 1
21+
return -1
2022
def by__name__(a, b):
21-
return a.__name__ > b.__name__
23+
if a.__name__ > b.__name__:
24+
return 1
25+
return -1
2226

2327
def column_repr(self):
2428

@@ -125,7 +129,7 @@ def __repr__(self):
125129
if self.config.example or self.config.interactive:
126130
s.write(constants.EXAMPLE_DECL%models[0].__name__)
127131
if self.config.interactive:
128-
s.write(constants.INTERACTIVE%[model.__name__ for model in models])
132+
s.write(constants.INTERACTIVE%([model.__name__ for model in models], models[0].__name__))
129133
return s.getvalue()
130134

131135
@property
@@ -134,7 +138,7 @@ def tables(self):
134138

135139
@property
136140
def models(self):
137-
return sorted([self.create_model(table) for table in self.get_non_many_to_many_tables()], by__name__)
141+
return sorted((self.create_model(table) for table in self.get_non_many_to_many_tables()), by__name__)
138142

139143
def create_model(self, table):
140144
#partially borrowed from Jorge Vargas' code

sqlautocode/tests/test_declarative.py

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,18 @@ def test_model___repr__(self):
6060
User = model
6161
r = User.__repr__()
6262
print r
63-
expected = """class TgUser(DeclarativeBase):
63+
expected = """\
64+
class TgUser(DeclarativeBase):
6465
__tablename__ = 'tg_user'
6566
6667
#column definitions
67-
user_id = Column(u'user_id', Integer(), primary_key=True, nullable=False)
68-
user_name = Column(u'user_name', String(length=16, convert_unicode=False, assert_unicode=None), nullable=False)
69-
email_address = Column(u'email_address', String(length=255, convert_unicode=False, assert_unicode=None), nullable=False)
68+
created = Column(u'created', DateTime(timezone=False))
7069
display_name = Column(u'display_name', String(length=255, convert_unicode=False, assert_unicode=None))
70+
email_address = Column(u'email_address', String(length=255, convert_unicode=False, assert_unicode=None), nullable=False)
7171
password = Column(u'password', String(length=80, convert_unicode=False, assert_unicode=None))
72-
created = Column(u'created', DateTime(timezone=False))
7372
town_id = Column(u'town_id', Integer(), ForeignKey('tg_town.town_id'))
73+
user_id = Column(u'user_id', Integer(), primary_key=True, nullable=False)
74+
user_name = Column(u'user_name', String(length=16, convert_unicode=False, assert_unicode=None), nullable=False)
7475
7576
#relation definitions
7677
tg_town = relation('TgTown')
@@ -82,7 +83,8 @@ def test__repr__(self):
8283

8384
r = repr(self.factory)
8485
print r
85-
expected = """#autogenerated by sqlautocode
86+
expected = """\
87+
#autogenerated by sqlautocode
8688
8789
from sqlalchemy import *
8890
from sqlalchemy.ext.declarative import declarative_base
@@ -103,13 +105,27 @@ def test__repr__(self):
103105
Column(u'group_id', Integer(), ForeignKey('tg_group.group_id'), primary_key=True, nullable=False),
104106
)
105107
108+
class TgGroup(DeclarativeBase):
109+
__tablename__ = 'tg_group'
110+
111+
#column definitions
112+
created = Column(u'created', DateTime(timezone=False))
113+
display_name = Column(u'display_name', String(length=255, convert_unicode=False, assert_unicode=None))
114+
group_id = Column(u'group_id', Integer(), primary_key=True, nullable=False)
115+
group_name = Column(u'group_name', String(length=16, convert_unicode=False, assert_unicode=None), nullable=False)
116+
117+
#relation definitions
118+
tg_permissions = relation('TgPermission', secondary=tg_group_permission)
119+
tg_users = relation('TgUser', secondary=tg_user_group)
120+
121+
106122
class TgPermission(DeclarativeBase):
107123
__tablename__ = 'tg_permission'
108124
109125
#column definitions
126+
description = Column(u'description', String(length=255, convert_unicode=False, assert_unicode=None))
110127
permission_id = Column(u'permission_id', Integer(), primary_key=True, nullable=False)
111128
permission_name = Column(u'permission_name', String(length=16, convert_unicode=False, assert_unicode=None), nullable=False)
112-
description = Column(u'description', String(length=255, convert_unicode=False, assert_unicode=None))
113129
114130
#relation definitions
115131
tg_groups = relation('TgGroup', secondary=tg_group_permission)
@@ -126,31 +142,17 @@ class TgTown(DeclarativeBase):
126142
tg_users = relation('TgUser')
127143
128144
129-
class TgGroup(DeclarativeBase):
130-
__tablename__ = 'tg_group'
131-
132-
#column definitions
133-
group_id = Column(u'group_id', Integer(), primary_key=True, nullable=False)
134-
group_name = Column(u'group_name', String(length=16, convert_unicode=False, assert_unicode=None), nullable=False)
135-
display_name = Column(u'display_name', String(length=255, convert_unicode=False, assert_unicode=None))
136-
created = Column(u'created', DateTime(timezone=False))
137-
138-
#relation definitions
139-
tg_permissions = relation('TgPermission', secondary=tg_group_permission)
140-
tg_users = relation('TgUser', secondary=tg_user_group)
141-
142-
143145
class TgUser(DeclarativeBase):
144146
__tablename__ = 'tg_user'
145147
146148
#column definitions
147-
user_id = Column(u'user_id', Integer(), primary_key=True, nullable=False)
148-
user_name = Column(u'user_name', String(length=16, convert_unicode=False, assert_unicode=None), nullable=False)
149-
email_address = Column(u'email_address', String(length=255, convert_unicode=False, assert_unicode=None), nullable=False)
149+
created = Column(u'created', DateTime(timezone=False))
150150
display_name = Column(u'display_name', String(length=255, convert_unicode=False, assert_unicode=None))
151+
email_address = Column(u'email_address', String(length=255, convert_unicode=False, assert_unicode=None), nullable=False)
151152
password = Column(u'password', String(length=80, convert_unicode=False, assert_unicode=None))
152-
created = Column(u'created', DateTime(timezone=False))
153153
town_id = Column(u'town_id', Integer(), ForeignKey('tg_town.town_id'))
154+
user_id = Column(u'user_id', Integer(), primary_key=True, nullable=False)
155+
user_name = Column(u'user_name', String(length=16, convert_unicode=False, assert_unicode=None), nullable=False)
154156
155157
#relation definitions
156158
tg_town = relation('TgTown')
@@ -160,7 +162,7 @@ class TgUser(DeclarativeBase):
160162
#example on how to query your Schema
161163
from sqlalchemy.orm import sessionmaker
162164
session = sessionmaker(bind=engine)()
163-
objs = session.query(TgPermission).all()
165+
objs = session.query(TgGroup).all()
164166
print objs
165167
"""
166168
eq_(r.strip(), expected.strip())

0 commit comments

Comments
 (0)