def testAdd(self): sample = os.path.join(self.tmp, "sample") os.mkdir(sample) self.populate_sample(sample) cli.init_stores() digest = "sha1new=7e3eb25a072988f164bae24d33af69c1814eb99a" try: cli.stores.lookup(digest) assert False except NotStored: pass logger.setLevel(logging.ERROR) try: cli.do_add([digest + "b", sample]) assert False except BadDigest: pass logger.setLevel(logging.WARN) old_stdout = sys.stdout cli.do_add([digest, sample]) sys.stdout = StringIO() try: cli.do_find([digest]) assert False except SystemExit, ex: assert ex.code == 0
def testList(self): cli.init_stores() old_stdout = sys.stdout sys.stdout = StringIO() cli.do_list([]) result = sys.stdout.getvalue() assert 'User store' in result sys.stdout = old_stdout
def testAddArchiveExtract(self): cli.init_stores() digest = 'sha1new=491678c37f77fadafbaae66b13d48d237773a68f' try: cli.stores.lookup(digest) assert False except NotStored: pass cli.do_add([digest, os.path.join(mydir, 'HelloWorld.tgz'), 'HelloWorld']) cli.stores.lookup(digest)
def testAddArchive(self): cli.init_stores() digest = 'sha1new=290eb133e146635fe37713fd58174324a16d595f' try: cli.stores.lookup(digest) assert False except NotStored: pass cli.do_add([digest, os.path.join(mydir, 'HelloWorld.tgz')]) cli.do_add([digest, os.path.join(mydir, 'HelloWorld.tgz')]) cli.stores.lookup(digest)
def testAddArchiveExtract(self): cli.init_stores() digest = 'sha1new=491678c37f77fadafbaae66b13d48d237773a68f' try: cli.stores.lookup(digest) assert False except NotStored: pass cli.do_add( [digest, os.path.join(mydir, 'HelloWorld.tgz'), 'HelloWorld']) cli.stores.lookup(digest)
def main(argv): (options, args) = parser.parse_args(argv) if options.verbose: logger = logging.getLogger() if options.verbose == 1: logger.setLevel(logging.INFO) else: logger.setLevel(logging.DEBUG) hdlr = logging.StreamHandler() fmt = logging.Formatter("%(levelname)s:%(message)s") hdlr.setFormatter(fmt) logger.addHandler(hdlr) if len(args) < 1: parser.print_help() sys.exit(1) try: cli.init_stores() pattern = args[0].lower() matches = [c for c in cli.commands if c.__name__[3:].startswith(pattern)] if len(matches) == 0: parser.print_help() sys.exit(1) if len(matches) > 1: raise SafeException("What do you mean by '%s'?\n%s" % (pattern, '\n'.join(['- ' + x.__name__[3:] for x in matches]))) matches[0](args[1:]) except KeyboardInterrupt as ex: print("Interrupted", file=sys.stderr) sys.exit(1) except OSError as ex: if options.verbose: raise print(str(ex), file=sys.stderr) sys.exit(1) except IOError as ex: if options.verbose: raise print(str(ex), file=sys.stderr) sys.exit(1) except cli.UsageError as ex: print(str(ex), file=sys.stderr) print("usage: 0install store " + matches[0].__doc__, file=sys.stderr) sys.exit(1) except SafeException as ex: if options.verbose: raise print(str(ex), file=sys.stderr) sys.exit(1)
def testAdd(self): sample = os.path.join(self.tmp, 'sample') os.mkdir(sample) self.populate_sample(sample) cli.init_stores() digest = 'sha1new=7e3eb25a072988f164bae24d33af69c1814eb99a' try: cli.stores.lookup(digest) assert False except NotStored: pass logger.setLevel(logging.ERROR) try: cli.do_add([digest + "b", sample]) assert False except BadDigest: pass logger.setLevel(logging.WARN) old_stdout = sys.stdout cli.do_add([digest, sample]) sys.stdout = StringIO() try: cli.do_find([digest]) assert False except SystemExit as ex: assert ex.code == 0 cached = sys.stdout.getvalue().strip() assert cached == cli.stores.lookup(digest) for alg in [[], ['sha1new']]: sys.stdout = StringIO() try: cli.do_manifest([cached] + alg) assert False except SystemExit as ex: assert ex.code == 0 result = sys.stdout.getvalue() assert 'MyFile' in result assert result.split('\n')[-2] == digest # Verify... sys.stdout = StringIO() cli.do_verify([cached, digest]) cli.do_verify([cached]) cli.do_verify([digest]) # Full audit cli.do_audit([os.path.dirname(cached)]) # Corrupt it... os.chmod(cached, 0o700) open(os.path.join(cached, 'hacked'), 'w').close() # Verify again... sys.stdout = StringIO() try: cli.do_verify([cached, digest]) assert False except SystemExit as ex: assert ex.code == 1 result = sys.stdout.getvalue() sys.stdout = old_stdout assert 'Cached item does NOT verify' in result # Full audit sys.stdout = StringIO() try: cli.do_audit([os.path.dirname(cached)]) except SystemExit as ex: assert ex.code == 1 result = sys.stdout.getvalue() sys.stdout = old_stdout assert 'Cached item does NOT verify' in result