def test_raises_for_invalid_call(self): config = Composition( find_fixture('composition', 'method'), ConfigStoreMock(), ) with self.assertRaises(RuntimeError): config.get_data()
def test_good_file_complex_key(self): config = KeyValueConfig(find_fixture('key_value', 'good')) data = config.get_data() self.assertIn('Key 2', data) self.assertEqual(data['Key 2'], 'Value 2 which is longer')
def test_good_file_simple_key(self): config = KeyValueConfig(find_fixture('key_value', 'good')) data = config.get_data() self.assertIn('Key1', data) self.assertEqual(data['Key1'], 'Value1')
def test_all_values_are_changes(self): config = Calls(find_fixture('calls', 'good'), ConfigStoreMock()) for call, change in config.get_data().items(): with self.subTest(call=call): self.assertIsInstance(change, Change) self.assertEqual(change.bells, 6)
def test_all_values_are_methods(self): config = Methods(find_fixture('methods', 'good'), ConfigStoreMock()) for base_name, method in config.get_data().items(): with self.subTest(base_name=base_name): self.assertIsInstance(method, Method) self.assertEqual(method.name, base_name) self.assertEqual(method.bells, 6)
def test_blank_lines_skipped(self): config = KeyValueConfig(find_fixture('key_value', 'padded')) data = config.get_data() self.assertIs(len(data), 1) self.assertIn('Key', data) self.assertEqual(data['Key'], 'Value')
def test_whitespace_padding_stripped(self): config = Composition( find_fixture('composition', 'padded'), ConfigStoreMock(), ) data = config.get_data() self.assertIs(len(data), 2) self.assertEqual(data, ['Cambridge', '-'])
def test_only_loads_calls_if_needed(self): config_store = ConfigStoreMock() config_store.calls = None # Will raise TypeError if accessed config = Composition( find_fixture('composition', 'plain'), config_store, ) # Test passes if no error config.get_data()
def test_passes_the_file_to_derived_classes(self): filename = find_fixture('base', 'good') config = TestConfig(filename) config._process_data = MagicMock() config.get_data() self.assertIs(config._process_data.call_count, 1) file = config._process_data.call_args[0][0] self.assertIsInstance(file, io.TextIOBase) self.assertEqual(file.name, filename)
def test_only_processes_data_once(self): config = TestConfig(find_fixture('base', 'good')) config._process_data = MagicMock() self.assertIs(config._process_data.call_count, 0) config.get_data() self.assertIs(config._process_data.call_count, 1) config.get_data() self.assertIs(config._process_data.call_count, 1)
def test_method_has_expected_data(self): config = Methods(find_fixture('methods', 'good'), ConfigStoreMock()) cambridge = config.get_data()['Cambridge'] self.assertEqual(cambridge.full_name(), 'Cambridge Surprise Minor') self.assertEqual( cambridge.format( external_places=True, cross_dash=True, symmetry=True, ), '&-36-14-12-36-14-56,12', )
def test_good_file_loaded_correctly(self): config = SingleValueConfig(find_fixture('single_value', 'good')) self.assertEqual(config.get_data(), 'test')
def test_raises_for_invalid_method(self, _): config = Methods(find_fixture('methods', 'bad'), ConfigStoreMock()) with self.assertRaises(ValueError): config.get_data()
def test_values_loaded_correctly(self): config = Composition( find_fixture('composition', 'good'), ConfigStoreMock(), ) self.assertEqual(config.get_data(), ['Cambridge', '-'])
def test_good_file_loaded_without_error(self): config = Calls(find_fixture('calls', 'good'), ConfigStoreMock()) self.assertIs(len(config.get_data()), 2)
def test_good_file_loaded_without_error(self): config = KeyValueConfig(find_fixture('key_value', 'good')) self.assertIs(len(config.get_data()), 2)
def test_good_file_loaded_without_error(self): config = Composition( find_fixture('composition', 'good'), ConfigStoreMock(), ) self.assertIs(len(config.get_data()), 2)
def test_good_file_loaded_correctly(self): config = Extents(find_fixture('extents', 'good')) self.assertIs(config.get_data(), 7)
def test_good_file_loaded_correctly(self): config = Bells(find_fixture('bells', 'good')) self.assertIs(config.get_data(), 12)
def test_good_file_loaded_correctly(self): config = IntegerValueConfig(find_fixture('integer_value', 'good')) self.assertIs(config.get_data(), 12)
def test_whitespace_padding_stripped(self): config = SingleValueConfig(find_fixture('single_value', 'padded')) self.assertEqual(config.get_data(), 'test')
def test_call_has_expected_data(self): config = Calls(find_fixture('calls', 'good'), ConfigStoreMock()) bob = config.get_data()['-'] self.assertEqual(str(bob), '14')
def test_raises_for_missing_file(self): config = SingleValueConfig(find_fixture('single_value', 'missing')) with self.assertRaises(FileNotFoundError): config.get_data()
def test_returns_the_processed_result_from_derived_classes(self): config = TestConfig(find_fixture('base', 'good')) self.assertEqual(config.get_data(), 'test')
def test_raises_for_non_integers(self): config = IntegerValueConfig(find_fixture('integer_value', 'bad')) with self.assertRaises(ValueError): config.get_data()
def test_raises_if_file_not_found(self): config = BaseConfig(find_fixture('base', 'missing')) with self.assertRaises(FileNotFoundError): config.get_data()
def test_raises_for_high_value(self): config = Bells(find_fixture('bells', 'high')) with self.assertRaises(RuntimeError): config.get_data()
def test_raises_not_implemented_for_abstract_base(self): config = BaseConfig(find_fixture('base', 'good')) with self.assertRaises(NotImplementedError): config.get_data()
def test_raises_for_low_value(self): config = Extents(find_fixture('extents', 'low')) with self.assertRaises(RuntimeError): config.get_data()
def test_raises_for_invalid_call(self, _): config = Calls(find_fixture('calls', 'bad'), ConfigStoreMock()) with self.assertRaises(ValueError): config.get_data()