Admin Panel

from amitools.vamos.cfg import LibsParser
import argparse


def cfg_libs_dict_test():
  lp = LibsParser()
  input_dict = {
      'libs': {
          "*.library": {
              "mode": "vamos",
              "version": 42,
              "expunge": "last_close",
              "num_fake_funcs": 0
          },
          "test.library": {
              "mode": "amiga",
              "version": 0,
              "expunge": "shutdown",
              "num_fake_funcs": 0
          }
      },
      'devs': {
          "*.device": {
              "mode": "fake",
              "version": 0,
              "expunge": "no_mem",
              "num_fake_funcs": 0
          },
          "test.device": {
              "mode": "off",
              "version": 42,
              "expunge": "no_mem",
              "num_fake_funcs": 0
          }
      }
  }
  lp.parse_config(input_dict, 'dict')
  assert lp.get_cfg_dict() == input_dict


def cfg_libs_ini_test():
  lp = LibsParser()
  ini_dict = {
      "*.library": {
          "mode": "vamos",
          "version": 42,
          "expunge": "no_mem",
          "num_fake_funcs": 1
      },
      "test.library": {
          "mode": "amiga",
          "version": 0,
          "expunge": "shutdown",
          "num_fake_funcs": 2
      },
      "*.device": {
          "mode": "fake",
          "version": 0,
          "expunge": "last_close",
          "num_fake_funcs": 3
      },
      "test.device": {
          "mode": "off",
          "version": 42,
          "expunge": "shutdown",
          "num_fake_funcs": 4
      }
  }
  lp.parse_config(ini_dict, 'ini')
  assert lp.get_cfg_dict() == {
      'libs': {
          "*.library": {
              "mode": "vamos",
              "version": 42,
              "expunge": "no_mem",
              "num_fake_funcs": 1
          },
          "test.library": {
              "mode": "amiga",
              "version": 0,
              "expunge": "shutdown",
              "num_fake_funcs": 2
          }
      },
      'devs': {
          "*.device": {
              "mode": "fake",
              "version": 0,
              "expunge": "last_close",
              "num_fake_funcs": 3
          },
          "test.device": {
              "mode": "off",
              "version": 42,
              "expunge": "shutdown",
              "num_fake_funcs": 4
          }
      }
  }


def cfg_libs_args_test():
  lp = LibsParser()
  ap = argparse.ArgumentParser()
  lp.setup_args(ap)
  args = ap.parse_args(
      ['-O', '*.library=mode:vamos,version:42,expunge:last_close,num_fake_funcs:1',
       '-O', 'test.library=mode:amiga',
       '-O', '*.device=mode:amiga+test.device=mode:fake,version:42,expunge:no_mem'])
  lp.parse_args(args)
  assert lp.get_cfg_dict() == {
      "libs": {
          "*.library": {
              "mode": "vamos",
              "version": 42,
              "expunge": "last_close",
              "num_fake_funcs": 1
          },
          "test.library": {
              "mode": "amiga",
              "version": 0,
              "expunge": "shutdown",
              "num_fake_funcs": 0
          }
      },
      "devs": {
          "*.device": {
              "mode": "amiga",
              "version": 0,
              "expunge": "shutdown",
              "num_fake_funcs": 0
          },
          "test.device": {
              "mode": "fake",
              "version": 42,
              "expunge": "no_mem",
              "num_fake_funcs": 0
          }
      }
  }