def test_refresh_to_classic(self): self.fake_snapd.find_result = [{ "fake-snap": { "channels": { "classic/stable": { "confinement": "classic" } } } }] snap_pkg = snaps.SnapPackage("fake-snap/classic/stable") snap_pkg.refresh() self.assertThat( self.fake_snap_command.calls, Equals([ ["snap", "whoami"], [ "sudo", "snap", "refresh", "fake-snap", "--channel", "classic/stable", "--classic", ], ]), )
def test_download_from_host(self): fake_get_assertion = fixtures.MockPatch( "snapcraft_legacy.internal.repo.snaps.get_assertion", return_value=b"foo-assert", ) self.useFixture(fake_get_assertion) self.fake_snapd.snaps_result = [{ "id": "fake-snap-id", "name": "fake-snap", "channel": "stable", "revision": "10", }] snap_pkg = snaps.SnapPackage("fake-snap/strict/stable") snap_pkg.local_download(snap_path="fake-snap.snap", assertion_path="fake-snap.assert") self.assertThat("fake-snap.snap", FileExists()) self.assertThat("fake-snap.assert", FileContains("foo-assert\nfoo-assert\nfoo-assert\n")) fake_get_assertion.mock.assert_has_calls([ mock.call([ "account-key", "public-key-sha3-384=BWDEoaqyr25nF5SNCvEv2v7QnM9QsfCc0PBMYD_i2NGSQ32EF2d4D0hqUel3m8ul", ]), mock.call(["snap-declaration", "snap-name=fake-snap"]), mock.call( ["snap-revision", "snap-revision=10", "snap-id=fake-snap-id"]), ])
def test_install_non_classic(self): self.fake_snapd.find_result = [{ "fake-snap": { "channels": { "strict/stable": { "confinement": "strict" } } } }] snap_pkg = snaps.SnapPackage("fake-snap/strict/stable") snap_pkg.install() self.assertThat( self.fake_snap_command.calls, Equals([ ["snap", "whoami"], [ "sudo", "snap", "install", "fake-snap", "--channel", "strict/stable", ], ]), )
def test_installed(self): snap_pkg = snaps.SnapPackage("fake-snap/strict/stable/branch") snap_pkg.get_local_snap_info = lambda: { "channel": "strict/stable/branch" } self.assertTrue(snap_pkg.is_valid())
def test_download_classic(self): self.fake_snapd.find_result = [{ "fake-snap": { "channels": { "classic/stable": { "confinement": "classic" } } } }] snap_pkg = snaps.SnapPackage("fake-snap") snap_pkg.download() self.assertThat(self.fake_snap_command.calls, Equals([["snap", "download", "fake-snap"]]))
def test_refresh_branch(self): snap_pkg = snaps.SnapPackage("fake-snap/strict/stable/branch") snap_pkg.refresh() self.assertThat( self.fake_snap_command.calls, Equals([ ["snap", "whoami"], [ "sudo", "snap", "refresh", "fake-snap", "--channel", "strict/stable/branch", ], ]), )
def test_download_channel(self): self.fake_snapd.find_result = [{ "fake-snap": { "channels": { "strict/edge": { "confinement": "strict" } } } }] snap_pkg = snaps.SnapPackage("fake-snap/strict/stable") snap_pkg.download() self.assertThat( self.fake_snap_command.calls, Equals([[ "snap", "download", "fake-snap", "--channel", "strict/stable" ]]), )
def test_install_classic_not_on_channel(self): self.fake_snapd.find_result = [{"fake-snap": {"channels": {}}}] snap_pkg = snaps.SnapPackage("fake-snap/classic/stable") snap_pkg.install() self.assertThat( self.fake_snap_command.calls, Equals([ ["snap", "whoami"], [ "sudo", "snap", "install", "fake-snap", "--channel", "classic/stable", ], ]), )
def test_download_from_host_dangerous(self): fake_get_assertion = fixtures.MockPatch( "snapcraft_legacy.internal.repo.snaps.get_assertion", return_value=b"foo-assert", ) self.useFixture(fake_get_assertion) self.fake_snapd.snaps_result = [{ "id": "fake-snap-id", "name": "fake-snap", "channel": "stable", "revision": "x1", }] snap_pkg = snaps.SnapPackage("fake-snap/strict/stable") snap_pkg.local_download(snap_path="fake-snap.snap", assertion_path="fake-snap.assert") self.assertThat("fake-snap.snap", FileExists()) self.assertThat("fake-snap.assert", FileContains("")) fake_get_assertion.mock.assert_not_called()
def test_refresh_logged_in(self): self.fake_snapd.find_result = [{ "fake-snap": { "channels": { "strict/stable": { "confinement": "strict" } } } }] self.fake_snap_command.login("*****@*****.**") snap_pkg = snaps.SnapPackage("fake-snap/strict/stable") snap_pkg.refresh() self.assertThat( self.fake_snap_command.calls, Equals([ ["snap", "whoami"], ["snap", "refresh", "fake-snap", "--channel", "strict/stable"], ]), )
def assert_installed(self, snap, installed_snaps, expected): self.fake_snapd.snaps_result = installed_snaps snap_pkg = snaps.SnapPackage(snap) self.expectThat(snap_pkg.installed, Is(expected)) self.expectThat(snaps.SnapPackage.is_snap_installed(snap), Is(expected))
def test_install_fails(self): self.fake_snap_command.install_success = False snap_pkg = snaps.SnapPackage("fake-snap/strict/stable") self.assertRaises(errors.SnapInstallError, snap_pkg.install)
def assert_classic(self, snap, find_result, expected): self.fake_snapd.find_result = find_result snap_pkg = snaps.SnapPackage(snap) self.assertThat(snap_pkg.is_classic(), Is(expected))
def assert_channels(self, snap, installed_snaps, expected): self.fake_snapd.snaps_result = installed_snaps snap_pkg = snaps.SnapPackage(snap) self.assertThat(snap_pkg.get_current_channel(), Equals(expected))
def assert_valid(self, snap, find_result, expected): self.fake_snapd.find_result = find_result snap_pkg = snaps.SnapPackage(snap) self.expectThat(snap_pkg.is_valid(), Is(expected)) self.expectThat(snaps.SnapPackage.is_valid_snap(snap), Is(expected))
def test_refresh_fails(self): snap_pkg = snaps.SnapPackage("fake-snap/strict/stable") self.fake_snap_command.refresh_success = False self.assertRaises(errors.SnapRefreshError, snap_pkg.refresh)
def assert_in_store(self, snap, find_result, expected): self.fake_snapd.find_result = find_result snap_pkg = snaps.SnapPackage(snap) self.assertThat(snap_pkg.in_store, Is(expected))