diff --git a/pysstv/tests/common.py b/pysstv/tests/common.py index 005624f..eae997a 100644 --- a/pysstv/tests/common.py +++ b/pysstv/tests/common.py @@ -1,4 +1,9 @@ from os import path +import pickle def get_asset_filename(filename): return path.join(path.dirname(__file__), 'assets', filename) + +def load_pickled_asset(filename): + with open(get_asset_filename(filename + '.p'), 'rb') as f: + return pickle.load(f) diff --git a/pysstv/tests/test_color.py b/pysstv/tests/test_color.py index 97003f1..8d9e292 100644 --- a/pysstv/tests/test_color.py +++ b/pysstv/tests/test_color.py @@ -1,11 +1,10 @@ import unittest from itertools import islice -import pickle from PIL import Image from pysstv import color -from pysstv.tests.common import get_asset_filename +from pysstv.tests.common import get_asset_filename, load_pickled_asset class TestMartinM1(unittest.TestCase): @@ -17,14 +16,12 @@ class TestMartinM1(unittest.TestCase): self.lena = color.MartinM1(lena, 48000, 16) def test_gen_freq_bits(self): - with open(get_asset_filename("MartinM1_freq_bits.p"), 'rb') as f: - expected = pickle.load(f) + expected = load_pickled_asset("MartinM1_freq_bits") actual = list(islice(self.s.gen_freq_bits(), 0, 1000)) self.assertEqual(expected, actual) def test_gen_freq_bits_lena(self): - with open(get_asset_filename("MartinM1_freq_bits_lena.p"), 'rb') as f: - expected = pickle.load(f) + expected = load_pickled_asset("MartinM1_freq_bits_lena") actual = list(islice(self.lena.gen_freq_bits(), 0, 1000)) self.assertEqual(expected, actual) @@ -42,7 +39,6 @@ class TestMartinM1(unittest.TestCase): self.maxDiff = None line_numbers = [1, 10, 100] for line in line_numbers: - with open(get_asset_filename("MartinM1_encode_line_lena%d.p" % line), 'rb') as f: - expected = pickle.load(f) + expected = load_pickled_asset("MartinM1_encode_line_lena{0}".format(line)) actual = list(self.lena.encode_line(line)) self.assertEqual(expected, actual) diff --git a/pysstv/tests/test_sstv.py b/pysstv/tests/test_sstv.py index 7fbb6d7..4a92af0 100644 --- a/pysstv/tests/test_sstv.py +++ b/pysstv/tests/test_sstv.py @@ -1,7 +1,6 @@ import unittest from itertools import islice from six.moves import zip -import pickle import mock from mock import MagicMock from six import BytesIO @@ -10,7 +9,7 @@ import hashlib from pysstv import sstv from pysstv.sstv import SSTV -from pysstv.tests.common import get_asset_filename +from pysstv.tests.common import load_pickled_asset class TestSSTV(unittest.TestCase): @@ -47,8 +46,7 @@ class TestSSTV(unittest.TestCase): # FIXME: Instead of using a test fixture, 'expected' should be synthesized? def test_gen_values(self): gen_values = self.s.gen_values() - with open(get_asset_filename("SSTV_gen_values.p"), 'rb') as f: - expected = pickle.load(f) + expected = load_pickled_asset("SSTV_gen_values") for e, g in zip(expected, gen_values): self.assertAlmostEqual(e, g, delta=0.000000001) @@ -60,8 +58,7 @@ class TestSSTV(unittest.TestCase): # and having different results. # https://en.wikipedia.org/wiki/Quantization_%28signal_processing%29 sstv.random = MagicMock(return_value=0.4) # xkcd:221 - with open(get_asset_filename("SSTV_gen_samples.p"), 'rb') as f: - expected = pickle.load(f) + expected = load_pickled_asset("SSTV_gen_samples") actual = list(islice(gen_values, 0, 1000)) for e, a in zip(expected, actual): self.assertAlmostEqual(e, a, delta=1)