From 07020951db13998566f3c873aea75b93f41efa43 Mon Sep 17 00:00:00 2001 From: Josef Skladanka Date: Apr 04 2018 13:13:40 +0000 Subject: Minor polishing of previous commit --- diff --git a/resultsdb/alembic/versions/cd581d0e83df_change_outcome_from_enum_to_string.py b/resultsdb/alembic/versions/cd581d0e83df_change_outcome_from_enum_to_string.py index 6e730f1..8c82026 100644 --- a/resultsdb/alembic/versions/cd581d0e83df_change_outcome_from_enum_to_string.py +++ b/resultsdb/alembic/versions/cd581d0e83df_change_outcome_from_enum_to_string.py @@ -17,14 +17,11 @@ import sqlalchemy as sa def upgrade(): - op.execute( - "ALTER TABLE result " - "ALTER COLUMN outcome " - "TYPE VARCHAR(32)") + op.alter_column('result', 'outcome', type_=sa.String(32)) + op.create_index('result_idx_outcome', 'result', [ + 'outcome'], unique=False, postgresql_ops={'outcome': 'text_pattern_ops'}) def downgrade(): - op.execute( - "ALTER TABLE result " - "ALTER COLUMN outcome " - "TYPE resultoutcome USING outcome::resultoutcome") + op.execute("ALTER TABLE result ALTER COLUMN outcome TYPE resultoutcome USING outcome::resultoutcome;") + op.drop_index('result_idx_outcome', table_name='result') diff --git a/resultsdb/models/results.py b/resultsdb/models/results.py index 95017a7..849160d 100644 --- a/resultsdb/models/results.py +++ b/resultsdb/models/results.py @@ -106,6 +106,9 @@ class Result(db.Model, DBSerialize): db.Index('result_fk_testcase_name', 'testcase_name', postgresql_ops={'testcase_name': 'text_pattern_ops'}), db.Index('result_submit_time', 'submit_time'), + db.Index('result_idx_outcome', 'outcome', + postgresql_ops={'outcome': 'text_pattern_ops'}, + ), ) def __init__(self, testcase, outcome, groups=None, ref_url=None, note=None): diff --git a/testing/functest_api_v20.py b/testing/functest_api_v20.py index f3c0c60..03d8f88 100644 --- a/testing/functest_api_v20.py +++ b/testing/functest_api_v20.py @@ -429,6 +429,17 @@ class TestFuncApiV20(): assert r.status_code == 201 assert data == self.ref_result + def test_create_result_custom_outcome(self): + self.test_create_group() + self.test_create_testcase() + ref_result = copy.deepcopy(self.ref_result) + ref_result['outcome'] = 'AMAZING' + + r, data = self.helper_create_result(outcome='AMAZING') + + assert r.status_code == 201 + assert data == ref_result + def test_create_result_missing_data(self): ref_data = json.dumps({'outcome': 'FAKEOUTCOME'}) r = self.app.post('/api/v2.0/results', data=ref_data, content_type='application/json') @@ -854,24 +865,6 @@ class TestFuncApiV20(): assert plugin.history[0]['note'] == self.ref_result_note assert plugin.history[0]['testcase']['name'] == self.ref_testcase_name - def test_create_result_custom_outcome(self): - self.test_create_group() - self.test_create_testcase() - ref_result = copy.deepcopy(self.ref_result) - ref_result['outcome'] = 'AMAZING' - - r, data = self.helper_create_result(outcome='AMAZING') - - assert r.status_code == 201 - assert data == ref_result - - ref_result = copy.deepcopy(self.ref_result) - ref_result['outcome'] = 'SILLY' - - r, data = self.helper_create_result(outcome='SILLY') - - assert r.status_code == 400 - def test_get_outcomes_on_landing_page(self): r = self.app.get('/api/v2.0/') data = json.loads(r.data)