diff --git a/test/test_export.py b/test/test_export.py new file mode 100644 index 000000000..ad00f83e7 --- /dev/null +++ b/test/test_export.py @@ -0,0 +1,98 @@ +# -*- coding: utf-8 -*- +# This file is part of beets. +# Copyright 2019, Carl Suster +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. + +"""Test the beets.export utilities associated with the export plugin. +""" + +from __future__ import division, absolute_import, print_function + +import unittest +from test import helper +from test.helper import TestHelper +#from beetsplug.export import ExportPlugin, ExportFormat, JSONFormat, CSVFormat, XMLFormat +#from collections import namedtuple + + +class ExportPluginTest(unittest.TestCase, TestHelper): + def setUp(self): + self.setup_beets() + self.load_plugins('export') + + def tearDown(self): + self.unload_plugins() + self.teardown_beets() + + def test_json_output(self): + item1, item2 = self.add_item_fixtures(count=2) + item1.album = 'talbum' + item1.artist = "tartist" + item1.track = "ttrack" + item1.write() + item1.store() + + out = self.run_with_output('export', '-f json -i "track,album" tartist') + self.assertIn('"track": "' + item1.track + '"', out) + self.assertIn('"album": "' + item1.album + '"', out) + + def test_csv_output(self): + item1, item2 = self.add_item_fixtures(count=2) + item1.album = 'talbum' + item1.artist = "tartist" + item1.track = "ttrack" + item1.write() + item1.store() + + out = self.run_with_output('export', '-f json -i "track,album" tartist') + self.assertIn(item1.track + ',' + item1.album, out) + + def test_xml_output(self): + item1, item2 = self.add_item_fixtures(count=2) + item1.album = 'talbum' + item1.artist = "tartist" + item1.track = "ttrack" + item1.write() + item1.store() + + out = self.run_with_output('export', '-f json -i "track,album" tartist') + self.assertIn("