def test_no_session(self, capsys): instance = apk.AndroidPackage() instance.command_line = ["-i"] instance.run() out, err = capsys.readouterr() assert re.search(r".*No open session.*", out)
def test_file(self, capsys, filename): __sessions__.new(os.path.join(FIXTURE_DIR, filename)) instance = apk.AndroidPackage() instance.command_line = ["-f"] instance.run() out, err = capsys.readouterr() assert re.search(r".*APK Contents.*", out)
def test_info(self, capsys, filename): __sessions__.new(os.path.join(FIXTURE_DIR, filename)) instance = apk.AndroidPackage() instance.command_line = ["-i"] instance.run() out, err = capsys.readouterr() assert re.search(r".*Package Name: de.rhab.helloworld*", out)
def test_dump_no_parameter(self, capsys, filename): __sessions__.new(os.path.join(FIXTURE_DIR, filename)) instance = apk.AndroidPackage() instance.command_line = ["-d"] instance.run() out, err = capsys.readouterr() assert re.search(r".*argument -d/--dump: expected one argument.*", out)
def test_all(self, capsys, filename, pkg_name): __sessions__.new(os.path.join(FIXTURE_DIR, filename)) instance = apk.AndroidPackage() instance.command_line = ["-a"] instance.run() out, err = capsys.readouterr() assert re.search(r".*Package Name: {}.*".format(pkg_name), out)
def test_url(self, capsys, filename): __sessions__.new(os.path.join(FIXTURE_DIR, filename)) instance = apk.AndroidPackage() instance.command_line = ["-u"] instance.run() out, err = capsys.readouterr() assert re.search(r".*http://schemas.android.com/apk/res/android.*", out) assert not re.search(r".*http://foo.example.bar.*", out)
def test_dump(self, capsys, filename): __sessions__.new(os.path.join(FIXTURE_DIR, filename)) instance = apk.AndroidPackage() instance.command_line = ["-d hello-world.dump"] instance.run() out, err = capsys.readouterr() assert re.search(r".*Decompiling Code.*", out) assert re.search(r".*Decompiled code saved to.*", out)
def test_cert(self, capsys, filename): __sessions__.new(os.path.join(FIXTURE_DIR, filename)) instance = apk.AndroidPackage() instance.command_line = ["-c"] instance.run() out, err = capsys.readouterr() assert re.search(r"SHA1: 65 2F 61 29 C8 7D 05 40 BF 98 6F C0 0E FD 9A B8 A7 87 84 DE", out) assert re.search(r"SHA256: 6E 56 64 27 DA 36 DD 91 36 39 B1 11 2F 74 7B 77 40 88 51 B4 85 7A 1D 63 EB F9 1E 02 B0 6F 20 88", out)
def test_cert(self, capsys, filename): __sessions__.new(os.path.join(FIXTURE_DIR, filename)) instance = apk.AndroidPackage() instance.command_line = ["-c"] instance.run() out, err = capsys.readouterr() assert re.search(r"md5: 2487974b62a94eaa8254b95dd8ce8fc7", out) assert re.search(r"sha1: 652f6129c87d0540bf986fc00efd9ab8a78784de", out)
def test_dump(self, capsys, filename): __sessions__.new(os.path.join(FIXTURE_DIR, filename)) instance = apk.AndroidPackage() instance.command_line = ["-d hello-world.dump"] # TODO(frennkie) this test fails (Can't convert 'bytes' object to str implicitly) instance.run() out, err = capsys.readouterr() assert re.search(r".*Decompiling Code.*", out) assert re.search(r".*Decompiled code saved to.*", out)
def test_args_exception(self): instance = apk.AndroidPackage() with pytest.raises(ArgumentErrorCallback) as excinfo: instance.parser.parse_args(["-h"]) excinfo.match(r".*Parse Android Applications.*")
def test_init(self): instance = apk.AndroidPackage() assert isinstance(instance, apk.AndroidPackage) assert isinstance(instance, Module)