diff --git a/Makefile b/Makefile index 74abc6e1..f2e03475 100644 --- a/Makefile +++ b/Makefile @@ -205,7 +205,7 @@ mysql_test: bin/py.test mysql -u jenkins_bookie --password=bookie -e "DROP DATABASE jenkins_bookie;" mysql -u jenkins_bookie --password=bookie -e "CREATE DATABASE jenkins_bookie;" bin/alembic -c test_alembic_mysql.ini upgrade head - BOOKIE_TEST_INI=test_mysql.ini $(NOSE) -xv --with-coverage --cover-package=bookie --cover-erase --with-xunit bookie/tests + BOOKIE_TEST_INI=test_mysql.ini INI="test_mysql.ini" NLTK_DATA=$(NLTK_DATA) $(PYTEST) -s bookie/tests .PHONY: pgsql_test pgsql_test: bin/py.test diff --git a/dbversions/versions/44dccb7b8b82_update_username_to_l.py b/dbversions/versions/44dccb7b8b82_update_username_to_l.py index 180b3028..02d4f435 100644 --- a/dbversions/versions/44dccb7b8b82_update_username_to_l.py +++ b/dbversions/versions/44dccb7b8b82_update_username_to_l.py @@ -1,10 +1,10 @@ -"""update username to lowercase +'''update username to lowercase Revision ID: 44dccb7b8b82 Revises: 9f274a38d84 Create Date: 2014-02-27 00:55:59.913206 -""" +''' # revision identifiers, used by Alembic. revision = '44dccb7b8b82' @@ -22,9 +22,10 @@ def upgrade(): bmarks = sa.Table('bmarks', meta, autoload=True) try: - op.drop_constraint("bmarks_username_fkey", "bmarks") + op.drop_index('bmarks_username_fkey', 'bmarks', 'unique') + op.drop_constraint('bmarks_username_fkey', 'bmarks', 'foreignkey') print 'dropped constraint' - except (sa.exc.OperationalError, NotImplementedError) as exc: + except (sa.exc.OperationalError, NotImplementedError): # If it's not supported then pass pass @@ -45,12 +46,17 @@ def upgrade(): print 'done user: ' + user['username'] try: + op.create_index( + 'bmarks_username_fkey', + 'bmarks', + ['username', 'hash_id'], + 'unique') op.create_foreign_key( - "bmarks_username_fkey", "bmarks", - "users", ["username"], ["username"]) + 'bmarks_username_fkey', 'bmarks', + 'users', ['username'], ['username']) print 'added constraint' - except (sa.exc.OperationalError, NotImplementedError) as exc: + except (sa.exc.OperationalError, NotImplementedError): # If it's not supported then pass pass diff --git a/dbversions/versions/5920b225d05d_load_up_to_date.py b/dbversions/versions/5920b225d05d_load_up_to_date.py index 3baf30d8..e60133bf 100644 --- a/dbversions/versions/5920b225d05d_load_up_to_date.py +++ b/dbversions/versions/5920b225d05d_load_up_to_date.py @@ -16,7 +16,8 @@ def upgrade(): ### commands auto generated by Alembic - please adjust! ### - op.create_table('users', + op.create_table( + 'users', sa.Column('id', sa.Integer(), nullable=False), sa.Column('username', sa.Unicode(length=255), nullable=True), sa.Column('name', sa.Unicode(length=255), nullable=True), @@ -36,21 +37,24 @@ def upgrade(): sa.UniqueConstraint('username') ) - op.create_table('tags', + op.create_table( + 'tags', sa.Column('tid', sa.Integer(), nullable=False), sa.Column('name', sa.Unicode(length=255), nullable=True), sa.PrimaryKeyConstraint('tid'), sa.UniqueConstraint('name') ) - op.create_table('url_hash', + op.create_table( + 'url_hash', sa.Column('hash_id', sa.Unicode(length=22), nullable=False), sa.Column('url', sa.UnicodeText(), nullable=True), sa.Column('clicks', sa.Integer(), nullable=True), sa.PrimaryKeyConstraint('hash_id') ) - op.create_table('bmarks', + op.create_table( + 'bmarks', sa.Column('bid', sa.Integer(), nullable=False), sa.Column('hash_id', sa.Unicode(length=22), nullable=True), sa.Column('description', sa.UnicodeText(), nullable=True), @@ -61,13 +65,16 @@ def upgrade(): sa.Column('inserted_by', sa.Unicode(length=255), nullable=True), sa.Column('username', sa.Unicode(length=255), nullable=False), sa.Column('tag_str', sa.UnicodeText(), nullable=True), - sa.ForeignKeyConstraint(['hash_id'], ['url_hash.hash_id'], ), - sa.ForeignKeyConstraint(['username'], ['users.username'], ), + sa.ForeignKeyConstraint( + ['hash_id'], ['url_hash.hash_id'], name="bmarks_hash_id_fkey"), + sa.ForeignKeyConstraint( + ['username'], ['users.username'], name="bmarks_username_fkey"), sa.UniqueConstraint('username', 'hash_id'), sa.PrimaryKeyConstraint('bid'), ) - op.create_table(u'activations', + op.create_table( + u'activations', sa.Column('id', sa.Integer(), nullable=False), sa.Column('code', sa.Unicode(length=60), nullable=True), sa.Column('valid_until', sa.DateTime(), nullable=True), @@ -76,7 +83,8 @@ def upgrade(): sa.PrimaryKeyConstraint('id') ) - op.create_table('bmark_tags', + op.create_table( + 'bmark_tags', sa.Column('bmark_id', sa.Integer(), nullable=False), sa.Column('tag_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['bmark_id'], ['bmarks.bid'], ), @@ -84,7 +92,8 @@ def upgrade(): sa.PrimaryKeyConstraint('bmark_id', 'tag_id') ) - op.create_table('logging', + op.create_table( + 'logging', sa.Column('id', sa.Integer(), nullable=False), sa.Column('user', sa.Unicode(255), nullable=False), sa.Column('component', sa.Unicode(50), nullable=False), @@ -95,7 +104,8 @@ def upgrade(): sa.PrimaryKeyConstraint('id'), ) - op.create_table('import_queue', + op.create_table( + 'import_queue', sa.Column('id', sa.Integer(), nullable=False), sa.Column('username', sa.Unicode(255)), sa.Column('file_path', sa.Unicode(100), nullable=False), @@ -105,7 +115,8 @@ def upgrade(): sa.PrimaryKeyConstraint('id'), ) - op.create_table('stats_bookmarks', + op.create_table( + 'stats_bookmarks', sa.Column('id', sa.Integer(), nullable=False), sa.Column('tstamp', sa.DateTime), sa.Column('attrib', sa.Unicode(100), nullable=False), @@ -113,7 +124,8 @@ def upgrade(): sa.PrimaryKeyConstraint('id'), ) - op.create_table('bmark_readable', + op.create_table( + 'bmark_readable', sa.Column('bid', sa.Integer(), nullable=False, index=True), sa.Column('hash_id', sa.Unicode(length=22), nullable=True), sa.Column('content', sa.UnicodeText(), nullable=True), diff --git a/test_mysql.ini b/test_mysql.ini index a08f4c53..bb55bed3 100644 --- a/test_mysql.ini +++ b/test_mysql.ini @@ -26,12 +26,17 @@ combo_server=127.0.0.1:8000 combo_cache_id= # file to include on each page that includes things such as google analytics code -installspecific = +installspecific = /home/rharding/src/bookie/bookie/installspecific.txt # Where are we going to upload import files while we wait to process them # we leave this commented out in tests, just let it use the default tmp dir #import_files=%(here)s/data/imports +celery_broker=redis://localhost:6379/9 +celery_concurrency=1 + +# Where are we going to upload import files while we wait to process them +import_files={here}/data/imports [server:main] use = egg:Paste#http @@ -41,7 +46,7 @@ port = 6543 # Begin logging configuration [loggers] -keys = root, bookie, sqlalchemy +keys = root, bookie, celery, breadability [handlers] keys = console @@ -50,16 +55,26 @@ keys = console keys = generic [logger_root] -level = DEBUG +level = INFO handlers = console [logger_bookie] -level = DEBUG +level = WARN handlers = qualname = bookie +[logger_breadability] +level = WARN +handlers = +qualname = breadability + +[logger_celery] +level = WARN +handlers = +qualname = bookie.bcelery.tasks + [logger_sqlalchemy] -level = DEBUG +level = WARN handlers = console qualname = sqlalchemy.engine # "level = INFO" logs SQL queries. @@ -69,7 +84,7 @@ qualname = sqlalchemy.engine [handler_console] class = StreamHandler args = (sys.stderr,) -level = DEBUG +level = INFO formatter = generic [formatter_generic]