Skip to content

Commit

Permalink
Parametrized converter tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
smelandr committed Apr 12, 2017
1 parent dc35c91 commit 84c2616
Showing 1 changed file with 33 additions and 77 deletions.
110 changes: 33 additions & 77 deletions tests/test_converter.py
Original file line number Diff line number Diff line change
@@ -1,98 +1,54 @@
import os
import shutil
import pytest

from nmrstarlib import nmrstarlib
from nmrstarlib.converter import Converter
from nmrstarlib.translator import StarFileToStarFile


def teardown_module(module):
shutil.rmtree("tests/example_data/NMRSTAR3/tmp")
shutil.rmtree("tests/example_data/NMRSTAR2/tmp")


def test_from_nmrstar_to_json_single_file():
nmrstar_file_translator = StarFileToStarFile(from_path="tests/example_data/NMRSTAR3/bmr18569.str",
to_path="tests/example_data/NMRSTAR3/tmp/bmr18569.json",
from_format="nmrstar",
to_format="json")
converter = Converter(file_generator=nmrstar_file_translator)
converter.convert()

nmrstar_file_translator = StarFileToStarFile(from_path="tests/example_data/NMRSTAR2/bmr18569.str",
to_path="tests/example_data/NMRSTAR2/tmp/bmr18569.json",
from_format="nmrstar",
to_format="json")
converter = Converter(file_generator=nmrstar_file_translator)
converter.convert()

starfile_generator = nmrstarlib.read_files("tests/example_data/NMRSTAR3/tmp/bmr18569.json",
"tests/example_data/NMRSTAR2/tmp/bmr18569.json")
starfile1 = next(starfile_generator)
starfile2 = next(starfile_generator)
assert starfile1.bmrbid == "18569" and starfile2.bmrbid == "18569"


def test_from_json_to_nmrstar_single_file():
nmrstar_file_translator = StarFileToStarFile(from_path="tests/example_data/NMRSTAR3/tmp/bmr18569.json",
to_path="tests/example_data/NMRSTAR3/tmp/bmr18569.str",
from_format="json",
to_format="nmrstar")
converter = Converter(file_generator=nmrstar_file_translator)
converter.convert()

nmrstar_file_translator = StarFileToStarFile(from_path="tests/example_data/NMRSTAR2/tmp/bmr18569.json",
to_path="tests/example_data/NMRSTAR2/tmp/bmr18569.str",
from_format="json",
to_format="nmrstar")
converter = Converter(file_generator=nmrstar_file_translator)
converter.convert()

starfile_generator = nmrstarlib.read_files("tests/example_data/NMRSTAR3/tmp/bmr18569.str",
"tests/example_data/NMRSTAR2/tmp/bmr18569.str")
starfile1 = next(starfile_generator)
starfile2 = next(starfile_generator)
assert starfile1.bmrbid == "18569" and starfile2.bmrbid == "18569"
if os.path.exists("tests/example_data/NMRSTAR3/tmp"):
shutil.rmtree("tests/example_data/NMRSTAR3/tmp")
if os.path.exists("tests/example_data/NMRSTAR2/tmp"):
shutil.rmtree("tests/example_data/NMRSTAR2/tmp")


def test_from_nmrstar_to_json_directory():
nmrstar_file_translator = StarFileToStarFile(from_path="tests/example_data/NMRSTAR3/starfiles_directory",
to_path="tests/example_data/NMRSTAR3/tmp/starfiles_directory_json",
from_format="nmrstar",
to_format="json")

@pytest.mark.parametrize("from_path,to_path,from_format,to_format", [
("tests/example_data/NMRSTAR3/bmr18569.str", "tests/example_data/NMRSTAR3/tmp/bmr18569.json", "nmrstar", "json"),
("tests/example_data/NMRSTAR2/bmr18569.str", "tests/example_data/NMRSTAR2/tmp/bmr18569.json", "nmrstar", "json"),
("tests/example_data/NMRSTAR3/tmp/bmr18569.json", "tests/example_data/NMRSTAR3/tmp/bmr18569.str", "json", "nmrstar"),
("tests/example_data/NMRSTAR2/tmp/bmr18569.json", "tests/example_data/NMRSTAR2/tmp/bmr18569.str", "json", "nmrstar")
])
def test_one_to_one_conversion(from_path, to_path, from_format, to_format):
nmrstar_file_translator = StarFileToStarFile(from_path=from_path,
to_path=to_path,
from_format=from_format,
to_format=to_format)
converter = Converter(file_generator=nmrstar_file_translator)
converter.convert()

nmrstar_file_translator = StarFileToStarFile(from_path="tests/example_data/NMRSTAR2/starfiles_directory",
to_path="tests/example_data/NMRSTAR2/tmp/starfiles_directory_json",
from_format="nmrstar",
to_format="json")
converter = Converter(file_generator=nmrstar_file_translator)
converter.convert()
starfile_generator = nmrstarlib.read_files(to_path)
starfile = next(starfile_generator)
assert starfile.bmrbid == "18569"

starfile_generator = nmrstarlib.read_files("tests/example_data/NMRSTAR3/tmp/starfiles_directory_json",
"tests/example_data/NMRSTAR2/tmp/starfiles_directory_json")
starfiles_list = list(starfile_generator)
starfiles_ids_set = set(sf.bmrbid for sf in starfiles_list)
assert starfiles_ids_set == {"15000", "18569"}

@pytest.mark.parametrize("from_path,to_path,from_format,to_format", [
("tests/example_data/NMRSTAR3/starfiles_directory", "tests/example_data/NMRSTAR3/tmp/starfiles_directory_json", "nmrstar", "json"),
("tests/example_data/NMRSTAR2/starfiles_directory", "tests/example_data/NMRSTAR2/tmp/starfiles_directory_json", "nmrstar", "json"),
("tests/example_data/NMRSTAR3/tmp/starfiles_directory_json", "tests/example_data/NMRSTAR3/tmp/starfiles_directory_nmrstar", "json", "nmrstar"),
("tests/example_data/NMRSTAR2/tmp/starfiles_directory_json", "tests/example_data/NMRSTAR2/tmp/starfiles_directory_nmrstar", "json", "nmrstar")
def test_from_json_to_nmrstar_directory():
nmrstar_file_translator = StarFileToStarFile(from_path="tests/example_data/NMRSTAR3/tmp/starfiles_directory_json",
to_path="tests/example_data/NMRSTAR3/tmp/starfiles_directory_nmrstar",
from_format="json",
to_format="nmrstar")
converter = Converter(file_generator=nmrstar_file_translator)
converter.convert()

nmrstar_file_translator = StarFileToStarFile(from_path="tests/example_data/NMRSTAR2/tmp/starfiles_directory_json",
to_path="tests/example_data/NMRSTAR2/tmp/starfiles_directory_nmrstar",
from_format="json",
to_format="nmrstar")
])
def test_many_to_many_conversion(from_path, to_path, from_format, to_format):
nmrstar_file_translator = StarFileToStarFile(from_path=from_path,
to_path=to_path,
from_format=from_format,
to_format=to_format)
converter = Converter(file_generator=nmrstar_file_translator)
converter.convert()

starfile_generator = nmrstarlib.read_files("tests/example_data/NMRSTAR3/tmp/starfiles_directory_nmrstar",
"tests/example_data/NMRSTAR2/tmp/starfiles_directory_nmrstar")
starfile_generator = nmrstarlib.read_files(to_path)
starfiles_list = list(starfile_generator)
starfiles_ids_set = set(sf.bmrbid for sf in starfiles_list)
assert starfiles_ids_set == {"15000", "18569"}

0 comments on commit 84c2616

Please sign in to comment.