def test_save_no_redirects(self): """Raise a ValidationError if save is run with no data to save.""" rdf = RedirectsFile('/tmp/foo.txt') with pytest.raises(ValueError): rdf.save('/tmp/bar.txt') with pytest.raises(ValueError): rdf.save()
def test_save(self): """Save redirects to specified file or self.file_name.""" rd1 = Redirect('/one', '/two', 302) rd2 = Redirect('/three', '/four', 302) rd3 = Redirect('/five', '/six', 302) rdf = RedirectsFile('/tmp/foo.json') rdf.add_redirect(rd1) rdf.add_redirect(rd2) rdf.add_redirect(rd3) m = mock.mock_open() with mock.patch('builtins.open', m, create=True): m.return_value = StringIO() rdf.save('/tmp/bar.txt') m.assert_called_with('/tmp/bar.txt', 'w', encoding='utf-8') m = mock.mock_open() with mock.patch('builtins.open', m, create=True): m.return_value = StringIO() rdf.save() m.assert_called_with('/tmp/foo.json', 'w', encoding='utf-8')