def test_package_ops_namespacing(self):
        cfgs = {
            'config-example': {'k1': 'v1'},
            'pkg1': {'p1': 'p2'},
            'ubuntu-core': {'c1': 'c2'},
            'notinstalled.smoser': {'s1': 's2'},
        }
        cfg = {'config-example-k1': 'config-example-k2'}
        ret = get_package_ops(
            packages=['config-example.canonical'], configs=cfgs,
            installed=['config-example.smoser', 'pkg1.canonical',
                       'ubuntu-core'])

        expected_configs = [
            makeop('config', 'pkg1', config=cfgs['pkg1']),
            makeop('config', 'ubuntu-core', config=cfgs['ubuntu-core'])]
        expected_installs = [
            makeop('install', 'config-example.canonical',
                   config=cfgs['config-example'])]

        installs = [i for i in ret if i['op'] == 'install']
        configs = [c for c in ret if c['op'] == 'config']

        self.assertEqual(installs, expected_installs)
        # configs are not ordered
        self.assertEqual(len(configs), len(expected_configs))
        self.assertTrue(all(found in expected_configs for found in configs))
    def test_package_ops_namespacing(self):
        cfgs = {
            "config-example": {"k1": "v1"},
            "pkg1": {"p1": "p2"},
            "ubuntu-core": {"c1": "c2"},
            "notinstalled.smoser": {"s1": "s2"},
        }
        ret = get_package_ops(
            packages=["config-example.canonical"],
            configs=cfgs,
            installed=["config-example.smoser", "pkg1.canonical", "ubuntu-core"],
        )

        expected_configs = [
            makeop("config", "pkg1", config=cfgs["pkg1"]),
            makeop("config", "ubuntu-core", config=cfgs["ubuntu-core"]),
        ]
        expected_installs = [makeop("install", "config-example.canonical", config=cfgs["config-example"])]

        installs = [i for i in ret if i["op"] == "install"]
        configs = [c for c in ret if c["op"] == "config"]

        self.assertEqual(installs, expected_installs)
        # configs are not ordered
        self.assertEqual(len(configs), len(expected_configs))
        self.assertTrue(all(found in expected_configs for found in configs))
 def test_package_ops_1(self):
     ret = get_package_ops(
         packages=['pkg1', 'pkg2', 'pkg3'],
         configs={'pkg2': b'mycfg2'}, installed=[])
     self.assertEqual(
         ret, [makeop('install', 'pkg1', None, None),
               makeop('install', 'pkg2', b'mycfg2', None),
               makeop('install', 'pkg3', None, None)])
 def test_package_ops_install_and_config(self):
     ret = get_package_ops(
         packages=["pkg3", "pkg2"], configs={"pkg2": b"mycfg2", "xinstalled": b"xcfg"}, installed=["xinstalled"]
     )
     self.assertEqual(
         ret,
         [makeop("install", "pkg3"), makeop("install", "pkg2", b"mycfg2"), makeop("config", "xinstalled", b"xcfg")],
     )
 def test_package_ops_install_and_config(self):
     ret = get_package_ops(
         packages=['pkg3', 'pkg2'],
         configs={'pkg2': b'mycfg2', 'xinstalled': b'xcfg'},
         installed=['xinstalled'])
     self.assertEqual(
         ret, [makeop('install', 'pkg3'),
               makeop('install', 'pkg2', b'mycfg2'),
               makeop('config', 'xinstalled', b'xcfg')])
Exemplo n.º 6
0
 def test_package_ops_1(self):
     ret = get_package_ops(packages=['pkg1', 'pkg2', 'pkg3'],
                           configs={'pkg2': b'mycfg2'},
                           installed=[])
     self.assertEqual(ret, [
         makeop('install', 'pkg1', None, None),
         makeop('install', 'pkg2', b'mycfg2', None),
         makeop('install', 'pkg3', None, None)
     ])
 def test_package_ops_1(self):
     ret = get_package_ops(packages=["pkg1", "pkg2", "pkg3"], configs={"pkg2": b"mycfg2"}, installed=[])
     self.assertEqual(
         ret,
         [
             makeop("install", "pkg1", None, None),
             makeop("install", "pkg2", b"mycfg2", None),
             makeop("install", "pkg3", None, None),
         ],
     )
Exemplo n.º 8
0
 def test_package_ops_install_and_config(self):
     ret = get_package_ops(packages=['pkg3', 'pkg2'],
                           configs={
                               'pkg2': b'mycfg2',
                               'xinstalled': b'xcfg'
                           },
                           installed=['xinstalled'])
     self.assertEqual(ret, [
         makeop('install', 'pkg3'),
         makeop('install', 'pkg2', b'mycfg2'),
         makeop('config', 'xinstalled', b'xcfg')
     ])
 def test_render_op_config_bytes(self):
     name = "snapf1"
     mycfg = b'myconfig'
     op = makeop('config', name, config=mycfg)
     render_snap_op(**op)
     self.assertEqual(
         self.snapcmds, [['config', 'snapf1', {'config': {name: mycfg}}]])
 def test_render_op_config_string(self):
     name = 'snapf1'
     mycfg = 'myconfig: foo\nhisconfig: bar\n'
     op = makeop('config', name, config=mycfg)
     render_snap_op(**op)
     self.assertEqual(
         self.snapcmds, [['config', 'snapf1', {'config': {name: mycfg}}]])
Exemplo n.º 11
0
def makeop_tmpd(tmpd, op, name, config=None, path=None, cfgfile=None):
    if cfgfile:
        cfgfile = os.path.sep.join([tmpd, cfgfile])
    if path:
        path = os.path.sep.join([tmpd, path])
    return (makeop(op=op, name=name, config=config, path=path,
                   cfgfile=cfgfile))
 def test_render_op_snap_config(self):
     mycfg = {'key1': 'value1'}
     name = "snapf1"
     op = makeop('install', name, config=mycfg)
     render_snap_op(**op)
     self.assertEqual(
         self.snapcmds, [['install', name, {'config': {name: mycfg}}]])
Exemplo n.º 13
0
 def test_render_long_configs_short(self):
     # install a namespaced package should have un-namespaced config
     mycfg = {"k1": "k2"}
     name = "snapf1"
     op = makeop("install", name + ".smoser", config=mycfg)
     render_snap_op(**op)
     data_found = self.snapcmds[0][2]
     self.assertEqual(mycfg, data_found["config"][name])
Exemplo n.º 14
0
 def test_render_op_config_list(self):
     # config entry for package can be a list, not a string blob
     mycfg = ["foo", "bar", "wark", {"f1": "b1"}]
     name = "snapf1"
     op = makeop("config", name, config=mycfg)
     render_snap_op(**op)
     data_found = self.snapcmds[0][2]
     self.assertEqual(mycfg, data_found["config"][name])
Exemplo n.º 15
0
 def test_package_ops_install_long_config_short(self):
     # a package can be installed by full name, but have config by short
     cfg = {'k1': 'k2'}
     ret = get_package_ops(packages=['config-example.canonical'],
                           configs={'config-example': cfg},
                           installed=[])
     self.assertEqual(ret,
                      [makeop('install', 'config-example.canonical', cfg)])
 def test_package_ops_install_long_config_short(self):
     # a package can be installed by full name, but have config by short
     cfg = {'k1': 'k2'}
     ret = get_package_ops(
         packages=['config-example.canonical'],
         configs={'config-example': cfg}, installed=[])
     self.assertEqual(
         ret, [makeop('install', 'config-example.canonical', cfg)])
Exemplo n.º 17
0
 def test_render_op_config_int(self):
     # config entry for package can be a list, not a string blob
     mycfg = 1
     name = 'snapf1'
     op = makeop('config', name, config=mycfg)
     render_snap_op(**op)
     data_found = self.snapcmds[0][2]
     self.assertEqual(mycfg, data_found['config'][name])
Exemplo n.º 18
0
 def test_render_op_config_list(self):
     # config entry for package can be a list, not a string blob
     mycfg = ['foo', 'bar', 'wark', {'f1': 'b1'}]
     name = "snapf1"
     op = makeop('config', name, config=mycfg)
     render_snap_op(**op)
     data_found = self.snapcmds[0][2]
     self.assertEqual(mycfg, data_found['config'][name])
Exemplo n.º 19
0
 def test_render_long_configs_short(self):
     # install a namespaced package should have un-namespaced config
     mycfg = {'k1': 'k2'}
     name = 'snapf1'
     op = makeop('install', name + ".smoser", config=mycfg)
     render_snap_op(**op)
     data_found = self.snapcmds[0][2]
     self.assertEqual(mycfg, data_found['config'][name])
 def test_render_long_configs_short(self):
     # install a namespaced package should have un-namespaced config
     mycfg = {'k1': 'k2'}
     name = 'snapf1'
     op = makeop('install', name + ".smoser", config=mycfg)
     render_snap_op(**op)
     data_found = self.snapcmds[0][2]
     self.assertEqual(mycfg, data_found['config'][name])
 def test_render_op_config_list(self):
     # config entry for package can be a list, not a string blob
     mycfg = ['foo', 'bar', 'wark', {'f1': 'b1'}]
     name = "snapf1"
     op = makeop('config', name, config=mycfg)
     render_snap_op(**op)
     data_found = self.snapcmds[0][2]
     self.assertEqual(mycfg, data_found['config'][name])
 def test_render_op_config_int(self):
     # config entry for package can be a list, not a string blob
     mycfg = 1
     name = 'snapf1'
     op = makeop('config', name, config=mycfg)
     render_snap_op(**op)
     data_found = self.snapcmds[0][2]
     self.assertEqual(mycfg, data_found['config'][name])
Exemplo n.º 23
0
 def test_render_op_config_dict(self):
     # config entry for package can be a dict, not a string blob
     mycfg = {'foo': 'bar'}
     name = 'snapf1'
     op = makeop('config', name, config=mycfg)
     render_snap_op(**op)
     # snapcmds is a list of 3-entry lists. data_found will be the
     # blob of data in the file in 'snappy install --config=<file>'
     data_found = self.snapcmds[0][2]
     self.assertEqual(mycfg, data_found['config'][name])
 def test_render_op_config_dict(self):
     # config entry for package can be a dict, not a string blob
     mycfg = {'foo': 'bar'}
     name = 'snapf1'
     op = makeop('config', name, config=mycfg)
     render_snap_op(**op)
     # snapcmds is a list of 3-entry lists. data_found will be the
     # blob of data in the file in 'snappy install --config=<file>'
     data_found = self.snapcmds[0][2]
     self.assertEqual(mycfg, data_found['config'][name])
Exemplo n.º 25
0
 def test_render_op_config_bytes(self):
     name = "snapf1"
     mycfg = b'myconfig'
     op = makeop('config', name, config=mycfg)
     render_snap_op(**op)
     self.assertEqual(self.snapcmds,
                      [['config', 'snapf1', {
                          'config': {
                              name: mycfg
                          }
                      }]])
Exemplo n.º 26
0
 def test_render_op_config_string(self):
     name = 'snapf1'
     mycfg = 'myconfig: foo\nhisconfig: bar\n'
     op = makeop('config', name, config=mycfg)
     render_snap_op(**op)
     self.assertEqual(self.snapcmds,
                      [['config', 'snapf1', {
                          'config': {
                              name: mycfg
                          }
                      }]])
Exemplo n.º 27
0
 def test_render_op_snap_config(self):
     mycfg = {'key1': 'value1'}
     name = "snapf1"
     op = makeop('install', name, config=mycfg)
     render_snap_op(**op)
     self.assertEqual(self.snapcmds,
                      [['install', name, {
                          'config': {
                              name: mycfg
                          }
                      }]])
 def test_package_ops_with_file(self):
     self.populate_tmp(
         {"snapf1.snap": b"foo1", "snapf1.config": b"snapf1cfg",
          "snapf2.snap": b"foo2", "foo.bar": "ignored"})
     ret = get_package_ops(
         packages=['pkg1'], configs={}, installed=[], fspath=self.tmp)
     self.assertEqual(
         ret,
         [makeop_tmpd(self.tmp, 'install', 'snapf1', path="snapf1.snap",
                      cfgfile="snapf1.config"),
          makeop_tmpd(self.tmp, 'install', 'snapf2', path="snapf2.snap"),
          makeop('install', 'pkg1')])
Exemplo n.º 29
0
    def test_package_ops_namespacing(self):
        cfgs = {
            'config-example': {
                'k1': 'v1'
            },
            'pkg1': {
                'p1': 'p2'
            },
            'ubuntu-core': {
                'c1': 'c2'
            },
            'notinstalled.smoser': {
                's1': 's2'
            },
        }
        cfg = {'config-example-k1': 'config-example-k2'}
        ret = get_package_ops(packages=['config-example.canonical'],
                              configs=cfgs,
                              installed=[
                                  'config-example.smoser', 'pkg1.canonical',
                                  'ubuntu-core'
                              ])

        expected_configs = [
            makeop('config', 'pkg1', config=cfgs['pkg1']),
            makeop('config', 'ubuntu-core', config=cfgs['ubuntu-core'])
        ]
        expected_installs = [
            makeop('install',
                   'config-example.canonical',
                   config=cfgs['config-example'])
        ]

        installs = [i for i in ret if i['op'] == 'install']
        configs = [c for c in ret if c['op'] == 'config']

        self.assertEqual(installs, expected_installs)
        # configs are not ordered
        self.assertEqual(len(configs), len(expected_configs))
        self.assertTrue(all(found in expected_configs for found in configs))
Exemplo n.º 30
0
 def test_package_ops_with_file(self):
     self.populate_tmp({
         "snapf1.snap": b"foo1",
         "snapf1.config": b"snapf1cfg",
         "snapf2.snap": b"foo2",
         "foo.bar": "ignored"
     })
     ret = get_package_ops(packages=['pkg1'],
                           configs={},
                           installed=[],
                           fspath=self.tmp)
     self.assertEqual(ret, [
         makeop_tmpd(self.tmp,
                     'install',
                     'snapf1',
                     path="snapf1.snap",
                     cfgfile="snapf1.config"),
         makeop_tmpd(self.tmp, 'install', 'snapf2', path="snapf2.snap"),
         makeop('install', 'pkg1')
     ])
Exemplo n.º 31
0
 def test_render_op_config_bytes(self):
     name = "snapf1"
     mycfg = b"myconfig"
     op = makeop("config", name, config=mycfg)
     render_snap_op(**op)
     self.assertEqual(self.snapcmds, [["config", "snapf1", {"config": {name: mycfg}}]])
Exemplo n.º 32
0
 def test_package_ops_config_only(self):
     ret = get_package_ops(packages=None,
                           configs={'pkg2': b'mycfg2'},
                           installed=['pkg1', 'pkg2'])
     self.assertEqual(ret, [makeop('config', 'pkg2', b'mycfg2')])
Exemplo n.º 33
0
 def test_render_op_snap(self):
     op = makeop("install", "snapf1")
     render_snap_op(**op)
     self.assertEqual(self.snapcmds, [["install", "snapf1", None]])
Exemplo n.º 34
0
 def test_render_op_config_string(self):
     name = "snapf1"
     mycfg = "myconfig: foo\nhisconfig: bar\n"
     op = makeop("config", name, config=mycfg)
     render_snap_op(**op)
     self.assertEqual(self.snapcmds, [["config", "snapf1", {"config": {name: mycfg}}]])
def makeop_tmpd(tmpd, op, name, config=None, path=None, cfgfile=None):
    if cfgfile:
        cfgfile = os.path.sep.join([tmpd, cfgfile])
    if path:
        path = os.path.sep.join([tmpd, path])
    return(makeop(op=op, name=name, config=config, path=path, cfgfile=cfgfile))
Exemplo n.º 36
0
 def test_package_ops_install_long_config_short(self):
     # a package can be installed by full name, but have config by short
     cfg = {"k1": "k2"}
     ret = get_package_ops(packages=["config-example.canonical"], configs={"config-example": cfg}, installed=[])
     self.assertEqual(ret, [makeop("install", "config-example.canonical", cfg)])
 def test_package_ops_config_only(self):
     ret = get_package_ops(
         packages=None,
         configs={'pkg2': b'mycfg2'}, installed=['pkg1', 'pkg2'])
     self.assertEqual(
         ret, [makeop('config', 'pkg2', b'mycfg2')])
Exemplo n.º 38
0
 def test_package_ops_config_only(self):
     ret = get_package_ops(packages=None, configs={"pkg2": b"mycfg2"}, installed=["pkg1", "pkg2"])
     self.assertEqual(ret, [makeop("config", "pkg2", b"mycfg2")])
Exemplo n.º 39
0
 def test_render_op_snap_config(self):
     mycfg = {"key1": "value1"}
     name = "snapf1"
     op = makeop("install", name, config=mycfg)
     render_snap_op(**op)
     self.assertEqual(self.snapcmds, [["install", name, {"config": {name: mycfg}}]])
Exemplo n.º 40
0
 def test_render_op_snap(self):
     op = makeop('install', 'snapf1')
     render_snap_op(**op)
     self.assertEqual(self.snapcmds, [['install', 'snapf1', None]])
 def test_render_op_snap(self):
     op = makeop('install', 'snapf1')
     render_snap_op(**op)
     self.assertEqual(
         self.snapcmds, [['install', 'snapf1', None]])