Esempio n. 1
0
def test_check_conditions_strings_missing_keys(check_conditions_string_config):
    """Check condition checking for string items and missing message keys."""
    msg = Mock()
    msg.data = {'product': 'overview', 'platform_name': 'NOAA-19'}
    assert check_conditions(msg, check_conditions_string_config) is False
    msg.data = {'sensor': 'avhrr', 'product': 'green_snow'}
    assert check_conditions(msg, check_conditions_string_config) is False
Esempio n. 2
0
def test_check_conditions_strings_negation(check_conditions_string_config):
    """Check condition checking for string items and negation."""
    msg = Mock()
    msg.data = {
        'sensor': 'avhrr',
        'product': 'green_snow',
        'platform_name': 'NOAA-15'
    }
    assert check_conditions(msg, check_conditions_string_config) is False
    msg.data = {
        'sensor': 'avhrr',
        'product': 'overview',
        'platform_name': 'NOAA-15'
    }
    assert check_conditions(msg, check_conditions_string_config) is True
Esempio n. 3
0
def test_check_conditions_numbers():
    """Check condition checking for numerical items."""
    config_item = yaml.safe_load("""
      topics:
        - /level3/cloudtype
      directory: /input/cloud_products
      conditions:
        - area: omerc_bb
          # ' 122'.strip().isdigit() -> True
          daylight: '<30'
          coverage: '>50'""")
    msg = Mock()
    msg.data = {'daylight': 18.3, 'area': 'omerc_bb', 'coverage': '77.1'}
    assert check_conditions(msg, config_item) is True
    msg.data = {'daylight': 48.3, 'area': 'omerc_bb', 'coverage': '77.1'}
    assert check_conditions(msg, config_item) is False
    msg.data = {'daylight': 18.3, 'area': 'omerc_bb', 'coverage': '27.1'}
    assert check_conditions(msg, config_item) is False
Esempio n. 4
0
def test_check_conditions():
    """Check condition checking."""
    config_item = yaml.safe_load("""
      topics:
        - /level2/viirs
        - /level2/avhrr
      conditions:
        # key matches metadata items or provides default
        - product: [green_snow, true_color]
          sensor: viirs
        - product: [green_snow, overview]
          sensor: avhrr
          # special section "except" for negating
          except:
            platform_name: NOAA-15
            product: [green_snow, cloudtop]""")
    msg = Mock()
    msg.data = {
        'sensor': 'viirs',
        'product': 'green_snow',
        'platform_name': 'NOAA-20'
    }
    assert check_conditions(msg, config_item) is True
    msg.data = {
        'sensor': 'viirs',
        'product': 'overview',
        'platform_name': 'NOAA-20'
    }
    assert check_conditions(msg, config_item) is False
    msg.data = {
        'sensor': 'avhrr',
        'product': 'overview',
        'platform_name': 'NOAA-19'
    }
    assert check_conditions(msg, config_item) is True
    # check negation
    msg.data = {
        'sensor': 'avhrr',
        'product': 'green_snow',
        'platform_name': 'NOAA-15'
    }
    assert check_conditions(msg, config_item) is False
    msg.data = {
        'sensor': 'avhrr',
        'product': 'overview',
        'platform_name': 'NOAA-15'
    }
    assert check_conditions(msg, config_item) is True
    # missing keys in the message data
    msg.data = {'product': 'overview', 'platform_name': 'NOAA-19'}
    assert check_conditions(msg, config_item) is False
    msg.data = {'sensor': 'avhrr', 'product': 'green_snow'}
    assert check_conditions(msg, config_item) is False

    # numerical values
    config_item = yaml.safe_load("""
      topics:
        - /level3/cloudtype
      directory: /input/cloud_products
      conditions:
        - area: omerc_bb
          # ' 122'.strip().isdigit() -> True
          daylight: '<30'
          coverage: '>50'""")
    msg = Mock()
    msg.data = {'daylight': 18.3, 'area': 'omerc_bb', 'coverage': '77.1'}
    assert check_conditions(msg, config_item) is True
    msg.data = {'daylight': 48.3, 'area': 'omerc_bb', 'coverage': '77.1'}
    assert check_conditions(msg, config_item) is False
    msg.data = {'daylight': 18.3, 'area': 'omerc_bb', 'coverage': '27.1'}
    assert check_conditions(msg, config_item) is False