Source code for pyrally.tests.unit.test_models.test_get_query_clauses

from nose.tools import assert_equal
from pyrally.models import get_query_clauses


[docs]def test_generates_query_strings_correctly(): query_1 = get_query_clauses(['a = 1', 'b = 2', 'c = 3'], ' or ') result = get_query_clauses([query_1, 'd = 4']) assert_equal(result, '(((a = 1) or (b = 2)) or (c = 3)) and (d = 4)')
[docs]def test_full_example(): clauses = [] clauses.append(get_query_clauses( ['Owner.name = alex.couper@test.com', 'Owner.name = bill@twe.com'], ' or ')) assert_equal(clauses[0], '(Owner.name = alex.couper@test.com) or ' '(Owner.name = bill@twe.com)') clauses.append(get_query_clauses(['State = "Defined"', 'State = "In Progress"', 'State = "Completed"', 'State = "Accepted"'], ' or ')) assert_equal(clauses[1], '(((State = "Defined") or (State = "In Progress")) ' 'or (State = "Completed")) or (State = "Accepted")') clauses.append(get_query_clauses( ['WorkProduct.FormattedId = "US524"'])) result = get_query_clauses(clauses) assert_equal(result, '(((Owner.name = alex.couper@test.com) or ' '(Owner.name = bill@twe.com)) and ((((State = "Defined") ' 'or (State = "In Progress")) or (State = "Completed")) ' 'or (State = "Accepted"))) and ' '(WorkProduct.FormattedId = "US524")')
[docs]def test_handles_single_clauses(): result = get_query_clauses(['a = 1']) assert_equal(result, 'a = 1')
[docs]def test_with_or_simple(): result = get_query_clauses(['a = 1', 'b = 2'], ' or ') assert_equal(result, '(a = 1) or (b = 2)')
[docs]def test_with_or_more_complex(): result = get_query_clauses(['a = 1', 'b = 2', 'c = 3'], ' or ') assert_equal(result, '((a = 1) or (b = 2)) or (c = 3)')
[docs]def test_with_or_more_complex_2(): result = get_query_clauses(['a = 1', 'b = 2', 'c = 3'], ' or ') result = get_query_clauses([result, 'd = 4']) assert_equal(result, '(((a = 1) or (b = 2)) or (c = 3)) and (d = 4)')
[docs]def test_long_or_set(): result = get_query_clauses(['A = "1"', 'B = "2"', 'C = "3"', 'D = "4"'], ' or ') assert_equal(result, '(((A = "1") or (B = "2")) or (C = "3")) or (D = "4")')