Added remote command: FROM_FILE

Remote commands can be read directly from a file (one per line).
Lines starting with `#` and empty lines are ignored.
This commit is contained in:
Kamil
2022-09-07 10:47:30 +02:00
committed by GitHub
parent cbe4bbb6ba
commit 434e1f3d25
2 changed files with 76 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
from test.picardtestcase import PicardTestCase
from picard.tagger import Tagger
class TestParsingFilesWithCommands(PicardTestCase):
MOCK_FILE_CONTENTS = (
# should be split into 2 commands
"LOAD file1.mp3 file2.mp3",
# should be added as one
"FROM_FILE file0.mp3",
"CLUSTER",
" FINGERPRINT "
# should be ignored
"",
" ",
"\n",
"#commented command",
)
def setUp(self):
super().setUp()
self.result = tuple(x for x in Tagger._parse_commands_from_lines(self.MOCK_FILE_CONTENTS))
def test_no_argument_command(self):
self.assertIn("command://CLUSTER ", self.result)
def test_no_argument_command_stripped_correctly(self):
self.assertIn("command://FINGERPRINT ", self.result)
def test_single_argument_command(self):
self.assertIn("command://FROM_FILE file0.mp3", self.result)
def test_multiple_arguments_command(self):
self.assertIn("command://LOAD file1.mp3", self.result)
self.assertIn("command://LOAD file2.mp3", self.result)
def test_empty_lines(self):
self.assertNotIn("command:// ", self.result)
self.assertNotIn("command://", self.result)
# 1 FROM_FILE
# 2 LOADs
self.assertEqual(len(self.result), 5)
def test_commented_lines(self):
self.assertNotIn("command://#commented command", self.result)