66from ga4gh .vrs .models import Allele , LiteralSequenceExpression
77from tests .conftest import return_cafs
88
9+ from anyvlm .storage import orm
910from anyvlm .storage .postgres import PostgresObjectStore
1011
1112
@@ -29,27 +30,43 @@ def test_add_allele_frequency(
2930 request , caf_fixture_name : str , postgres_storage : PostgresObjectStore
3031):
3132 """Test that add_allele_frequency method works correctly"""
32- caf = request .getfixturevalue (caf_fixture_name )
33-
34- def insert_and_verify_one_row ():
35- postgres_storage .add_allele_frequency (caf )
36-
37- rows = return_cafs (postgres_storage )
38- assert len (rows ) == 1
39-
40- db_record = rows [0 ]
4133
34+ def verify_row (db_record : orm .AlleleFrequencyData , expected_consequence : str ):
35+ """Verify row"""
4236 assert db_record .vrs_id == "ga4gh:VA.J3Hi64dkKFKdnKIwB2419Qz3STDB2sJq"
4337 assert db_record .af == 0.000162232
4438 assert db_record .ac == 1
4539 assert db_record .an == 6164
4640 assert db_record .ac_het == 1
4741 assert db_record .ac_hom == 0
48- assert db_record .consequence == "intron_variant"
42+ assert db_record .consequence == expected_consequence
4943 assert db_record .filter == ["LowQual" , "NO_HQ_GENOTYPES" ]
5044
45+ def insert_and_verify_rows (
46+ caf_obj : CohortAlleleFrequencyStudyResult , expected_consequences : list [str ]
47+ ):
48+ """Insert caf record and verify rows"""
49+ postgres_storage .add_allele_frequency (caf_obj )
50+
51+ rows = return_cafs (postgres_storage )
52+ assert len (rows ) == len (expected_consequences )
53+
54+ for index , consequence in enumerate (expected_consequences ):
55+ db_record = rows [index ]
56+ verify_row (db_record , consequence )
57+
58+ caf = request .getfixturevalue (caf_fixture_name )
59+ expected_consequences = ["intron_variant" ]
60+
5161 # first insert
52- insert_and_verify_one_row ( )
62+ insert_and_verify_rows ( caf , expected_consequences = expected_consequences )
5363
5464 # second insert
55- insert_and_verify_one_row ()
65+ insert_and_verify_rows (caf , expected_consequences = expected_consequences )
66+
67+ # test composite key
68+ new_caf = caf .model_copy (deep = True )
69+ new_consequence = "missense_variant"
70+ new_caf .ancillaryResults ["consequence" ] = new_consequence
71+ expected_consequences .append (new_consequence )
72+ insert_and_verify_rows (new_caf , expected_consequences = expected_consequences )
0 commit comments