mirror of
https://github.com/mvt-project/mvt.git
synced 2026-09-03 00:21:07 +02:00
43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
# Mobile Verification Toolkit (MVT)
|
|
# Copyright (c) 2021-2026 The MVT Authors.
|
|
# Use of this software is governed by the MVT License 1.1 that can be found at
|
|
# https://license.mvt.re/1.1/
|
|
|
|
import sqlite3
|
|
|
|
from mvt.common.module import run_module
|
|
from mvt.ios.modules.mixed.contacts import Contacts
|
|
|
|
|
|
def test_contacts_preserves_complete_rows_and_people_without_values(tmp_path):
|
|
db_path = tmp_path / "AddressBook.sqlitedb"
|
|
conn = sqlite3.connect(db_path)
|
|
conn.executescript(
|
|
"""
|
|
CREATE TABLE ABPerson (
|
|
ROWID INTEGER PRIMARY KEY, First TEXT, Middle TEXT, Last TEXT,
|
|
Organization TEXT, Note TEXT
|
|
);
|
|
CREATE TABLE ABMultiValue (
|
|
ROWID INTEGER PRIMARY KEY, record_id INTEGER, value TEXT,
|
|
label INTEGER
|
|
);
|
|
INSERT INTO ABPerson VALUES (1, 'Alice', NULL, 'Example', NULL, 'note');
|
|
INSERT INTO ABPerson VALUES (2, 'Bob', NULL, 'NoValue', NULL, 'retained');
|
|
INSERT INTO ABMultiValue VALUES (10, 1, '+491234', 3);
|
|
"""
|
|
)
|
|
conn.close()
|
|
|
|
module = Contacts(file_path=str(db_path))
|
|
run_module(module)
|
|
|
|
assert len(module.results) == 2
|
|
alice = next(result for result in module.results if result["first"] == "Alice")
|
|
bob = next(result for result in module.results if result["first"] == "Bob")
|
|
assert alice["contact"]["person_Note"] == "note"
|
|
assert alice["contact"]["multivalue_label"] == 3
|
|
assert alice["First"] == "Alice"
|
|
assert bob["value"] is None
|
|
assert bob["contact"]["person_Note"] == "retained"
|