Admin Panel

from amitools.vamos.cfgcore import Argument, ArgumentDict
import argparse


def config_argdict_argument_test():
  a = Argument('-x', '--the-x', action='store_true', default=False)
  ap = argparse.ArgumentParser()
  a.add(ap)
  args = ap.parse_args(['-x'])
  assert a.get_value(args)
  args = ap.parse_args([])
  assert not a.get_value(args)


def config_argdict_simple_test():
  cfg = {
    "a": Argument('-x', action='store_true', default=False),
    "b": Argument('-b')
  }
  ad = ArgumentDict(cfg)
  ap = argparse.ArgumentParser()
  ad.add_args(ap)
  # only set -x
  args = ap.parse_args(['-x'])
  assert ad.gen_dict(args) == {
    "a": True
  }
  # only set -b
  args = ap.parse_args(['-b', 'hi'])
  assert ad.gen_dict(args) == {
    "a": False,
    "b": 'hi'
  }


def config_argdict_order_test():
  cfg = {
    "a": Argument('first', order=1),
    "b": Argument('second', order=2)
  }
  ad = ArgumentDict(cfg)
  ap = argparse.ArgumentParser()
  ad.add_args(ap)
  # check order
  args = ap.parse_args(['first', 'second'])
  assert ad.gen_dict(args) == {
    "a": 'first',
    "b": 'second'
  }