Changeset 192:64d5e98cf60a
- Timestamp:
- 07/19/09 22:00:18 (14 months ago)
- Branch:
- default
- convert_revision:
- svn:0ead1229-0713-0410-96cd-f668dbfad531/trunk@278
- Location:
- shakespeare
- Files:
-
- 8 modified
-
migration/versions/001_pre_migrate_model.py (modified) (2 diffs)
-
model/dm.py (modified) (2 diffs)
-
stats.py (modified) (1 diff)
-
tests/__init__.py (modified) (4 diffs)
-
tests/functional/test_text.py (modified) (1 diff)
-
tests/test_model.py (modified) (3 diffs)
-
tests/test_search.py (modified) (2 diffs)
-
tests/test_stats.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
shakespeare/migration/versions/001_pre_migrate_model.py
r190 r192 6 6 work_table = Table('work', metadata, 7 7 Column('id', Integer, primary_key=True), 8 Column('name', String(255)),9 Column('title', String(255)),10 Column('creator', String(255)),11 Column('notes', Text),8 Column('name', Unicode(255)), 9 Column('title', Unicode(255)), 10 Column('creator', Unicode(255)), 11 Column('notes', UnicodeText), 12 12 ) 13 13 14 14 material_table = Table('material', metadata, 15 15 Column('id', Integer, primary_key=True), 16 Column('name', String(255)),16 Column('name', Unicode(255)), 17 17 Column('work_id', Integer, ForeignKey('work.id')), 18 Column('title', String(255)),19 Column('creator', String(255)),20 Column('notes', Text),21 Column('format', Text),18 Column('title', Unicode(255)), 19 Column('creator', Unicode(255)), 20 Column('notes', UnicodeText), 21 Column('format', UnicodeText), 22 22 # python package it lives in, if any 23 Column('src_pkg', Text),23 Column('src_pkg', UnicodeText), 24 24 # url (file or web) or standard (unix) file path 25 Column('src_locator', Text),25 Column('src_locator', UnicodeText), 26 26 ) 27 27 … … 29 29 Column('id', Integer, primary_key=True), 30 30 Column('material_id', Integer, ForeignKey('material.id')), 31 Column('word', String(50)),31 Column('word', Unicode(50)), 32 32 Column('freq', Integer), 33 33 ) -
shakespeare/model/dm.py
r186 r192 2 2 Domain model 3 3 """ 4 from sqlalchemy import Column, MetaData, Table, types, ForeignKey5 from sqlalchemy import orm4 from sqlalchemy import Column, Table, ForeignKey 5 from sqlalchemy.types import * 6 6 from sqlalchemy.orm import relation, backref 7 7 … … 11 11 12 12 work_table = Table('work', metadata, 13 Column('id', types.Integer, primary_key=True),14 Column('name', types.String(255)),15 Column('title', types.String(255)),16 Column('creator', types.String(255)),17 Column('notes', types.Text),13 Column('id', Integer, primary_key=True), 14 Column('name', Unicode(255)), 15 Column('title', Unicode(255)), 16 Column('creator', Unicode(255)), 17 Column('notes', UnicodeText), 18 18 ) 19 19 20 20 material_table = Table('material', metadata, 21 Column('id', types.Integer, primary_key=True),22 Column('name', types.String(255)),23 Column('work_id', types.Integer, ForeignKey('work.id')),24 Column('title', types.String(255)),25 Column('creator', types.String(255)),26 Column('notes', types.Text),27 Column('format', types.Text),21 Column('id', Integer, primary_key=True), 22 Column('name', Unicode(255)), 23 Column('work_id', Integer, ForeignKey('work.id')), 24 Column('title', Unicode(255)), 25 Column('creator', Unicode(255)), 26 Column('notes', UnicodeText), 27 Column('format', UnicodeText), 28 28 # python package it lives in, if any 29 Column('src_pkg', types.Text),29 Column('src_pkg', UnicodeText), 30 30 # url (file or web) or standard (unix) file path 31 Column('src_locator', types.Text),31 Column('src_locator', UnicodeText), 32 32 ) 33 33 34 34 # TODO: indices on word and occurences 35 35 statistic_table = Table('statistic', metadata, 36 Column('id', types.Integer, primary_key=True),37 Column('material_id', types.Integer, ForeignKey('material.id')),38 Column('word', types.String(50)),39 Column('freq', types.Integer),36 Column('id', Integer, primary_key=True), 37 Column('material_id', Integer, ForeignKey('material.id')), 38 Column('word', Unicode(50)), 39 Column('freq', Integer), 40 40 ) 41 41 -
shakespeare/stats.py
r155 r192 47 47 for k in stats: 48 48 model.Statistic(text=material, 49 word= k,49 word=unicode(k, 'utf8', 'ignore'), 50 50 freq=stats[k] 51 51 ) -
shakespeare/tests/__init__.py
r160 r192 30 30 31 31 test_file = os.path.join(conf_dir, 'test.ini') 32 cmd = paste.script.appinstall.SetupCommand('setup-app') 33 cmd.run([test_file]) 32 # cmd = paste.script.appinstall.SetupCommand('setup-app') 33 # cmd.run([test_file]) 34 import shakespeare 35 shakespeare.register_config(test_file) 36 import shakespeare.model as model 37 model.repo.rebuild_db() 34 38 35 39 sonnet18_text = \ 36 '''Shall I compare thee to a summer's day?40 u'''Shall I compare thee to a summer's day? 37 41 Thou art more lovely and more temperate: 38 42 Rough winds do shake the darling buds of May, … … 54 58 55 59 class TestData: 56 name = 'test_sonnet18'57 name2 = 'test_sonnet18_2'60 name = u'test_sonnet18' 61 name2 = u'test_sonnet18_2' 58 62 59 63 @classmethod … … 63 67 if not sonnet18_work: 64 68 sonnet18_work = model.Work(name=self.name, 65 title= 'Sonnet 18',66 creator= 'William Shakespeare'69 title=u'Sonnet 18', 70 creator=u'William Shakespeare' 67 71 ) 68 72 sonnet18 = model.Material.by_name(self.name) 69 73 if not sonnet18: 70 74 sonnet18 = model.Material(name=self.name, 71 title= 'Sonnet 18 (First Edition)',75 title=u'Sonnet 18 (First Edition)', 72 76 work=sonnet18_work, 73 77 ) … … 85 89 if not sonnet18: 86 90 sonnet18 = model.Material(name=self.name2, 87 title= 'Sonnet 18 Duplicate',91 title=u'Sonnet 18 Duplicate', 88 92 work=sonnet18_work 89 93 ) -
shakespeare/tests/functional/test_text.py
r163 r192 7 7 @classmethod 8 8 def setup_class(cls): 9 text = model.Material.byName( 'tempest_gut')9 text = model.Material.byName(u'tempest_gut') 10 10 if text is None: 11 11 print 'Adding items' 12 import shksprdata. load13 shksprdata. load.LoadTexts.load_texts()12 import shksprdata.cli 13 shksprdata.cli.LoadTexts.load_texts() 14 14 model.Session.flush() 15 15 model.Session.remove() -
shakespeare/tests/test_model.py
r171 r192 5 5 @classmethod 6 6 def setup_class(self): 7 self.name = 'test-123'8 self.title = 'Hamlet'7 self.name = u'test-123' 8 self.title = u'Hamlet' 9 9 work = model.Work( 10 10 name=self.name, … … 13 13 title=self.title, 14 14 work=work, 15 src_pkg= 'shksprdata',16 src_locator= '/gutenberg/phoenix_and_the_turtle_gut.txt'15 src_pkg=u'shksprdata', 16 src_locator=u'/gutenberg/phoenix_and_the_turtle_gut.txt' 17 17 ) 18 18 … … 55 55 @classmethod 56 56 def setup_class(self): 57 self.name = 'test-123'58 self.title = 'Hamlet'57 self.name = u'test-123' 58 self.title = u'Hamlet' 59 59 self.text = model.Material(name=self.name, title=self.title) 60 self.word = 'jones'60 self.word = u'jones' 61 61 self.freq = 5 62 62 self.cc1 = model.Statistic( -
shakespeare/tests/test_search.py
r126 r192 34 34 assert len(out) == 2 35 35 mset1 = out[0] 36 exp = "Shall I compare thee to a summer's day"36 exp = u"Shall I compare thee to a summer's day" 37 37 assert mset1.document.get_data().startswith(exp) 38 38 … … 41 41 mset1 = out[1] 42 42 # 'But thy eternal summer ... 43 exp = "But thy eternal summer shall not fade,\nNor lose possession of that fair thou ow'st,"43 exp = u"But thy eternal summer shall not fade,\nNor lose possession of that fair thou ow'st," 44 44 assert mset1.document.get_data().startswith(exp) 45 45 -
shakespeare/tests/test_stats.py
r163 r192 27 27 28 28 def test_get_stats(self): 29 simpletext = 'Death death dead love loved loving'29 simpletext = u'Death death dead love loved loving' 30 30 out = self.stats.analyze(StringIO.StringIO(simpletext)) 31 31 assert len(out) == 3 … … 35 35 36 36 def test_freq_nonexistent(self): 37 nonexistent_word = 'abdfakfjadf'37 nonexistent_word = u'abdfakfjadf' 38 38 freq = self.stats.freq(self.text, nonexistent_word) 39 39 assert freq == 0 … … 41 41 def test_statsify(self): 42 42 stats_fixture(self.text) 43 word = 'summer'43 word = u'summer' 44 44 freq = self.stats.freq(self.text, word) 45 45 assert freq == 3 … … 62 62 stats_fixture(self.text) 63 63 stats_fixture(self.text2) 64 stats = self.stats.word_stats( 'summer')64 stats = self.stats.word_stats(u'summer') 65 65 assert len(stats) == 2 66 66 assert stats[0].text.name == self.text.name
