from django.test import TestCase from .lib import build_dict, build_query, trim class TestBuildQuery(TestCase): def test_build_dict(self): items = [ 'aa:{bb:{cc:{f3:{_op3:$f3}}}}', # 1 'aa:{bb:{f2:{_op2:$f2}}}', # 2 'aa:{dd:{f4:{_op4:$f4}}}', # 3 'aa:{bb:{f1:{_op1:$f1}}}', # 1 ] expected = { 'aa': { 'bb': { 'cc': { 'f3': { '_op3': '$f3' } }, 'f1': { '_op1': '$f1' }, 'f2': { '_op2': '$f2' }, }, 'dd': { 'f4': { '_op4': '$f4' } } } } assert build_dict(items) == expected def test_build_query(self): items = [ 'aa:{bb:{cc:{f3:{_op3:$f3}}}}', # 1 'aa:{bb:{f2:{_op2:$f2}}}', # 2 'aa:{dd:{f4:{_op4:$f4}}}', # 3 'aa:{bb:{f1:{_op1:$f1}}}', # 1 ] expected = ''' aa: { bb: { cc: {f3: {_op3: $f3}}, f1: {_op1: $f1}, f2: {_op2: $f2} }, dd: {f4: {_op4: $f4}} } ''' assert build_query(items) == trim(expected)