# -*- coding: utf-8 -*- """Test appending a note file from the command-line using the '-a' arg""" from __future__ import print_function, unicode_literals import unittest import os from tests.test_usecase import DataCommandTestCase class TestNoteAppend(DataCommandTestCase): """Test appending a note file from the command-line using the '-a' arg""" def setUp(self, nsec_stat=True): """Initialize a bib entry containing citation key, Page99, for testing""" super(TestNoteAppend, self).setUp() init = ['pubs init', 'pubs add data/pagerank.bib', ] self.execute_cmds(init) self.note_dir = os.path.join(self.default_pubs_dir, 'notes') def test_note_append(self): """Test appending the note file using the command-line argument, -a""" fin_notes = os.path.join(self.note_dir, 'Page99.txt') # Test adding first line cmds = [('pubs note Page99 -a aaa')] self.execute_cmds(cmds) note_lines = ['aaa'] self.assertFileContentEqual(fin_notes, self._get_note_content(note_lines)) # Test adding additional line cmds = [('pubs note Page99 -a bbb')] self.execute_cmds(cmds) note_lines.append('bbb') self.assertFileContentEqual(fin_notes, self._get_note_content(note_lines)) # # Test adding Japanese character # cmds = [('pubs note Page99 -a ソ')] # self.execute_cmds(cmds) # note_lines.append('ソ') # self.assertFileContentEqual(fin_notes, self._get_note_content(note_lines)) @staticmethod def _get_note_content(note_lines): """Given a list of note lines, return full note file content""" return '{LINES}\n'.format(LINES='\n'.join(note_lines)) if __name__ == '__main__': unittest.main(verbosity=2)