Exemplo n.º 1
0
    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",
                ],
            ]),
        )
Exemplo n.º 2
0
    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"]),
        ])
Exemplo n.º 3
0
    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",
                ],
            ]),
        )
Exemplo n.º 4
0
    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())
Exemplo n.º 5
0
    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"]]))
Exemplo n.º 6
0
 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",
             ],
         ]),
     )
Exemplo n.º 7
0
    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"
            ]]),
        )
Exemplo n.º 8
0
    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",
                ],
            ]),
        )
Exemplo n.º 9
0
    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()
Exemplo n.º 10
0
    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"],
            ]),
        )
Exemplo n.º 11
0
 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))
Exemplo n.º 12
0
 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)
Exemplo n.º 13
0
 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))
Exemplo n.º 14
0
 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))
Exemplo n.º 15
0
 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))
Exemplo n.º 16
0
 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)
Exemplo n.º 17
0
 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))