diff --git a/pubs/commands/import_cmd.py b/pubs/commands/import_cmd.py index b83249a..09b721f 100644 --- a/pubs/commands/import_cmd.py +++ b/pubs/commands/import_cmd.py @@ -20,7 +20,7 @@ def parser(subparsers, conf): help="don't copy document files, just create a link.") parser.add_argument('keys', nargs='*', help="one or several keys to import from the file") - parser.add_argument('-O', '--overwrite', default=False, + parser.add_argument('-O', '--overwrite', action='store_true', default=False, help="Overwrite keys already in the database") return parser diff --git a/tests/test_usecase.py b/tests/test_usecase.py index 41b652a..78c3579 100644 --- a/tests/test_usecase.py +++ b/tests/test_usecase.py @@ -687,6 +687,26 @@ class TestUsecase(DataCommandTestCase): outs = self.execute_cmds(cmds) self.assertEqual(1 + 1, len(outs[-1].split('\n'))) + def test_import_does_not_overwrite(self): + cmds = ['pubs init', + 'pubs import data/ Page99', + 'pubs import data/', + 'pubs list' + ] + + with self.assertRaises(FakeSystemExit): + self.execute_cmds(cmds) + + def test_import_overwrites(self): + cmds = ['pubs init', + 'pubs import data/ Page99', + 'pubs import --overwrite data/ Page99', + 'pubs list' + ] + + outs = self.execute_cmds(cmds) + self.assertEqual(1 + 1, len(outs[-1].split('\n'))) + def test_update(self): cmds = ['pubs init', 'pubs add data/pagerank.bib',