id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,launchpad_bug 2027,Inconsistent 'tahoe cp' behavior,markberger,,"When copying a file from the top level of a directory node using the CLI, tahoe requires a file name to be specified. Ex: {{{tahoe cp tahoe:Seattle.jpg ~}}} fails with the following assertion traceback, while {{{tahoe cp tahoe:Seattle.jpg ~/Seattle.jpg}}} succeeds. {{{ Marks-MacBook-Pro-5:tahoe-fork markberger$ bin/tahoe cp tahoe:Seattle.jpg ~ Traceback (most recent call last): File ""/Users/markberger/Code/tahoe-fork/src/allmydata/scripts/runner.py"", line 156, in run rc = runner(sys.argv[1:], install_node_control=install_node_control) File ""/Users/markberger/Code/tahoe-fork/src/allmydata/scripts/runner.py"", line 141, in runner rc = cli.dispatch[command](so) File ""/Users/markberger/Code/tahoe-fork/src/allmydata/scripts/cli.py"", line 551, in cp rc = tahoe_cp.copy(options) File ""/Users/markberger/Code/tahoe-fork/src/allmydata/scripts/tahoe_cp.py"", line 770, in copy return Copier().do_copy(options) File ""/Users/markberger/Code/tahoe-fork/src/allmydata/scripts/tahoe_cp.py"", line 451, in do_copy status = self.try_copy() File ""/Users/markberger/Code/tahoe-fork/src/allmydata/scripts/tahoe_cp.py"", line 512, in try_copy return self.copy_to_directory(sources, target) File ""/Users/markberger/Code/tahoe-fork/src/allmydata/scripts/tahoe_cp.py"", line 672, in copy_to_directory self.copy_files_to_target(self.targetmap[target], target) File ""/Users/markberger/Code/tahoe-fork/src/allmydata/scripts/tahoe_cp.py"", line 703, in copy_files_to_target self.copy_file_into(source, name, target) File ""/Users/markberger/Code/tahoe-fork/src/allmydata/scripts/tahoe_cp.py"", line 748, in copy_file_into target.put_file(name, f) File ""/Users/markberger/Code/tahoe-fork/src/allmydata/scripts/tahoe_cp.py"", line 156, in put_file precondition(isinstance(name, unicode), name) File ""/Users/markberger/Code/tahoe-fork/src/allmydata/util/assertutil.py"", line 39, in precondition raise AssertionError, """".join(msgbuf) AssertionError: precondition: 'Seattle.jpg' }}} However, when a file is copied from a subdirectory to the local disk without a specified file name, the download will succeed. Ex: {{{tahoe cp tahoe:test/Seattle.jpg ~}}} succeeds along with {{{tahoe cp tahoe:test/Seattle.jpg ~/Seattle.jpg}}}. All four cases should succeed.",defect,closed,normal,1.10.1,code-frontend-cli,1.10.0,fixed,usability error cli tahoe-cp review-needed,,