Admin Panel

import logging
from amitools.vamos.cfgcore import ConfigDict
from amitools.vamos.log import *


def do_log():
  log_main.debug("debug")
  log_main.info("info")
  log_main.warn("warn")
  log_main.error("error")

  log_mem.debug("debug")
  log_mem.info("info")
  log_mem.warn("warn")
  log_mem.error("error")


def vamos_log_setup_default_test(caplog):
  log_cfg = ConfigDict({
      'file': None,
      'quiet': False,
      'verbose': False,
      'timestamps': True,
      'levels': None
  })
  assert log_setup(log_cfg)
  do_log()
  assert caplog.record_tuples == [
      ('main', logging.WARNING, 'warn'),
      ('main', logging.ERROR, 'error'),
      ('mem', logging.WARNING, 'warn'),
      ('mem', logging.ERROR, 'error')
  ]


def vamos_log_setup_verbose_test(caplog):
  log_cfg = ConfigDict({
      'file': None,
      'quiet': False,
      'verbose': True,  # verbose sets main to info
      'timestamps': True,
      'levels': None
  })
  assert log_setup(log_cfg)
  do_log()
  assert caplog.record_tuples == [
      ('main', logging.INFO, 'info'),
      ('main', logging.WARNING, 'warn'),
      ('main', logging.ERROR, 'error'),
      ('mem', logging.WARNING, 'warn'),
      ('mem', logging.ERROR, 'error')
  ]


def vamos_log_setup_quiet_test(caplog):
  log_cfg = ConfigDict({
      'file': None,
      'quiet': True,  # set all levels to error
      'verbose': False,
      'timestamps': True,
      'levels': None
  })
  assert log_setup(log_cfg)
  do_log()
  assert caplog.record_tuples == [
      ('main', logging.ERROR, 'error'),
      ('mem', logging.ERROR, 'error')
  ]


def vamos_log_setup_levels_test(caplog):
  log_cfg = ConfigDict({
      'file': None,
      'quiet': False,
      'verbose': False,
      'timestamps': True,
      'levels': {
          'mem': 'info'
      }
  })
  assert log_setup(log_cfg)
  do_log()
  assert caplog.record_tuples == [
      ('main', logging.WARN, 'warn'),
      ('main', logging.ERROR, 'error'),
      ('mem', logging.INFO, 'info'),
      ('mem', logging.WARN, 'warn'),
      ('mem', logging.ERROR, 'error')
  ]


def vamos_log_setup_levels_fail_test(caplog):
  log_cfg = ConfigDict({
      'file': None,
      'quiet': False,
      'verbose': False,
      'timestamps': True,
      'levels': {
          'foo': 'info'
      }
  })
  assert not log_setup(log_cfg)
  assert caplog.record_tuples == [
      ('config', logging.ERROR, 'invalid logger: foo')
  ]


def vamos_log_setup_levels_fail2_test(caplog):
  log_cfg = ConfigDict({
      'file': None,
      'quiet': False,
      'verbose': False,
      'timestamps': True,
      'levels': {
          'mem': 'foo'
      }
  })
  assert not log_setup(log_cfg)
  assert caplog.record_tuples == [
      ('config', logging.ERROR, 'invalid log level: foo')
  ]