Example #1
0
def test_grid_not_equal__with_new_col():
    ref = Grid()
    ref.column['test'] = {}
    ref.extend([{'test': 1}, {'test': 2}, {'test': 3}])
    diff = copy.deepcopy(ref)
    diff.column["added"] = {}
    assert ref != diff
Example #2
0
def test_grid_new_row():
    ref = Grid()
    ref.column['test'] = {}
    ref.extend([{'test': 1}, {'test': 2}, {'test': 3}])
    diff = copy.deepcopy(ref)
    diff.append({'test': 4})
    assert ref != diff
Example #3
0
def test_grid_not_equal_with_updated_value():
    ref = Grid()
    ref.column['test'] = {"a": 1}
    ref.extend([{'test': 1}, {'test': 2}, {'test': 3}])
    diff = copy.deepcopy(ref)
    diff.column['test'] = {"a": ""}
    assert ref != diff
Example #4
0
def test_grid_equal_with_complex_datas():
    ref = Grid()
    ref.column['test'] = {}
    ref.extend([
        {
            'test': datetime.datetime(2010, 11, 28, 7, 23, 2, 600000)
        },
        {
            'test': Quantity(500, 'kg')
        },
        {
            'test': Coordinate(100, 100)
        },
        {
            'test': 1.0
        },
    ])
    similar = Grid()
    similar.column['test'] = {}
    similar.extend([
        {
            'test': datetime.datetime(2010, 11, 28, 7, 23, 2, 500000)
        },
        {
            'test': Quantity(500.000001, 'kg')
        },
        {
            'test': Coordinate(100.000001, 100.000001)
        },
        {
            'test': 1.000001
        },
    ])

    assert ref == similar
Example #5
0
def test_grid_not_equal_row():
    ref = Grid()
    ref.column['test'] = {}
    ref.extend([{'test': 1}, {'test': 2}, {'test': 3}])
    diff = copy.deepcopy(ref)
    diff[0] = {'test': 4}
    assert ref != diff
Example #6
0
def test_grid_getitem():
    g = Grid()
    g.column['test'] = {}

    row = {'test': 'This is a test'}
    g.append(row)
    assert g[0] is row
Example #7
0
def test_grid_not_equal_col_with_updated_metadata():
    ref = Grid()
    ref.column['test'] = {}
    ref.extend([{'test': 1}, {'test': 2}, {'test': 3}])
    diff = copy.deepcopy(ref)
    diff.column['test']['test'] = None
    assert ref != diff
Example #8
0
def test_grid_not_equal_col_with_new_metadata():
    ref = Grid()
    ref.column['test'] = {}
    ref.extend([{'test': 1}, {'test': 2}, {'test': 3}])
    diff = copy.deepcopy(ref)
    diff.column.add_item('test', 'add')
    assert ref != diff
Example #9
0
def test_grid_setitem():
    g = Grid()
    g.column['test'] = {}

    row_1 = {'test': 'This is a test'}
    row_2 = {'test': 'This is another test'}
    g.append(row_1)
    g[0] = row_2
    assert g[0] is row_2
Example #10
0
def test_grid_del():
    g = Grid()
    rows = [{'test': 1}, {'test': 2}, {'test': 3}]
    g.column['test'] = {}
    g.extend(rows)
    assert len(g) == 3
    del g[1]
    assert len(g) == 2
    assert g[0] is rows[0]
    assert g[1] is rows[2]
Example #11
0
def test_filter_and_limit():
    grid = Grid(columns={'id': {}, 'site': {}})
    grid.append({
        'id': 'id1',
        'site': MARKER,
        'equip': 'Chicago',
        'geoPostalCode': "78280",
        'ahu': MARKER,
        'geoCity': 'Chicago',
        'curVal': 76
    })
    grid.append({
        'id': 'id2',
        'hvac': MARKER,
        'geoPostalCode': "23220",
        'curVal': 75
    })
    grid.append({
        'equip': 'Chicago',
        'hvac': MARKER,
        'siteRef': Ref('id1'),
        'curVal': 74
    })

    assert len(grid.filter('not acme', limit=1)) == 1
Example #12
0
def test_grid_not_equal_metadata():
    ref = Grid(metadata={"x": {}})
    ref.column['test'] = {}
    ref.extend([{'test': 1}, {'test': 2}, {'test': 3}])
    diff = copy.deepcopy(ref)
    diff.metadata.append('add')
    assert ref != diff

    diff = copy.deepcopy(ref)
    diff.metadata["x"] = 1
    assert ref != diff
Example #13
0
def test_grid_setitem_notdict():
    g = Grid()
    g.column['test'] = {}

    row = {'test': 'This is a test'}
    g.append(row)

    try:
        g[0] = 'This is not a dict'
        assert False, 'Accepted a string'
    except TypeError:
        pass
    assert len(g) == 1
    assert g[0]['test'] == 'This is a test'
Example #14
0
def test_grid_str():
    g = Grid(version=VER_3_0)
    rows = [{'test': 1}, {'test': 2}, {'test': 3}]
    g.column['test'] = {}
    g.extend(rows)
    assert repr(g) == '<Grid>\n' \
                      '\tVersion: 3.0\n' \
                      '\tColumns:\n' \
                      '\t\ttest\n' \
                      '\tRow    0:\n' \
                      '\ttest=1\n' \
                      '\tRow    1:\n' \
                      '\ttest=2\n' \
                      '\tRow    2:\n' \
                      '\ttest=3\n' \
                      '</Grid>'
Example #15
0
def test_grid_given_column_list():
    col_list = [('col1', [('c1m1', None), ('c1m2', None)]),
                ('col2', [('c2m1', None), ('c2m2', None)])]
    g = Grid(columns=col_list)
    assert list(g.column.keys()) == ['col1', 'col2']
    for col, meta in col_list:
        assert list(g.column[col].items()) == meta
Example #16
0
def test_grid_given_column_dict():
    cols = SortableDict([('col1', [('c1m1', None), ('c1m2', None)]),
                         ('col2', [('c2m1', None), ('c2m2', None)])])
    g = Grid(columns=cols)
    assert list(g.column.keys()) == ['col1', 'col2']
    for col, meta in cols.items():
        assert list(g.column[col].items()) == meta
Example #17
0
def test_grid_given_metadata():
    # Test that when passing in metadata, it is set as given.
    meta = SortableDict()
    meta['first'] = 1
    meta['second'] = 2
    meta['third'] = 3
    meta['fourth'] = 4

    assert list(Grid(metadata=meta).metadata.items()) == [
            ('first', 1), ('second', 2), ('third', 3), ('fourth', 4)
    ]
Example #18
0
def test_grid_append_nover_list():
    g = Grid()
    assert g.version == Version('2.0')
    g.column['test'] = {}

    row_1 = {'test': 'This is a test'}
    row_2 = {'test': ['This should fail']}
    g.append(row_1)
    assert g.version == Version('2.0')
    g.append(row_2)
    assert g.version == Version('3.0')
Example #19
0
def test_grid_append_v2_list_fail():
    g = Grid(version='2.0')
    g.column['test'] = {}

    row_1 = {'test': 'This is a test'}
    row_2 = {'test': ['This should fail']}
    g.append(row_1)
    try:
        g.append(row_2)
        assert False, 'Appended invalid data type'
    except ValueError as e:
        assert str(e) == 'Data type requires version 3.0'
Example #20
0
def test_grid_append_notdict():
    g = Grid()
    g.column['test'] = {}

    row_1 = {'test': 'This is a test'}
    row_2 = 'This is not a dict'
    g.append(row_1)
    try:
        g.append(row_2)
        assert False
    except TypeError as e:
        assert str(e) == 'value must be a dict'
        assert len(g) == 1
Example #21
0
def test_grid_insert():
    g = Grid()
    rows = [{'test': 1}, {'test': 2}, {'test': 3}]
    g.column['test'] = {}
    g.extend(rows)
    assert len(g) == 3
    new_row = {'test': 'new'}
    g.insert(1, new_row)
    assert len(g) == 4
    assert g[0] is rows[0]
    assert g[1] is new_row
    assert g[2] is rows[1]
    assert g[3] is rows[2]
Example #22
0
def test_slice():
    grid = Grid(columns={'id': {}, 'site': {}})
    grid.append({
        'id': 'id1',
    })
    grid.append({'id': 'id2'})
    grid.append({'id': 'id3'})

    result = grid[0:2]
    assert len(result) == 2
    assert result['id1']
    assert result['id2']
Example #23
0
def test_slide_get():
    grid = Grid(
        columns={
            'id': {},
            'site': {},
            'equip': {},
            'geoPostalCode': {},
            'ahu': {},
            'geoCity': {},
            'curVal': {},
            'hvac': {},
            'siteRef': {}
        })
    grid.append({
        'id': 'id1',
        'site': MARKER,
        'equip': 'Chicago',
        'geoPostalCode': "78280",
        'ahu': MARKER,
        'geoCity': 'Chicago',
        'curVal': 76
    })
    grid.append({
        'id': 'id2',
        'hvac': MARKER,
        'geoPostalCode': "23220",
        'curVal': 75
    })
    grid.append({
        'equip': 'Chicago',
        'hvac': MARKER,
        'siteRef': Ref('id1'),
        'curVal': 74
    })
    assert len(grid[0:1]) == 1
    assert len(grid[1:]) == 2
    assert len(grid[:]) == 3
Example #24
0
def test_grid_filter():
    grid = Grid(
        columns={
            'id': {},
            'site': {},
            'equip': {},
            'geoPostalCode': {},
            'ahu': {},
            'geoCity': {},
            'curVal': {},
            'hvac': {},
            'siteRef': {}
        })
    grid.append({
        'id': 'id1',
        'site': MARKER,
        'equip': 'Chicago',
        'geoPostalCode': "78280",
        'ahu': MARKER,
        'geoCity': 'Chicago',
        'curVal': 76
    })
    grid.append({
        'id': 'id2',
        'hvac': MARKER,
        'geoPostalCode': "23220",
        'curVal': 75
    })
    grid.append({
        'equip': 'Chicago',
        'hvac': MARKER,
        'siteRef': Ref('id1'),
        'curVal': 74
    })
    result = grid.filter('site')
    assert len(result) == 1
    assert result['id1']

    result = grid.filter('equip == "Chicago"')
    assert len(result) == 2
    assert result[0]['id'] == 'id1'
    assert result[1]['equip'] == 'Chicago'

    result = grid.filter('not id')
    assert len(result) == 1
    assert result[0]['equip'] == 'Chicago'
Example #25
0
def test_grid_specification_filter_sample():
    grid = Grid(
        columns={
            'id': {},
            'site': {},
            'equip': {},
            'geoPostalCode': {},
            'ahu': {},
            'geoCity': {},
            'curVal': {},
            'hvac': {},
            'siteRef': {}
        })
    grid.append({
        'id': 'id1',
        'site': MARKER,
        'equip': 'Chicago',
        'geoPostalCode': "78280",
        'ahu': MARKER,
        'geoCity': 'Chicago',
        'curVal': 76
    })
    grid.append({
        'id': 'id2',
        'hvac': MARKER,
        'geoPostalCode': "23220",
        'curVal': 75
    })
    grid.append({
        'equip': 'Chicago',
        'hvac': MARKER,
        'siteRef': Ref('id1'),
        'curVal': 74
    })

    # specification samples
    result = grid.filter('geoPostalCode == "23220"')
    assert len(result) == 1
    assert result[0]['id'] == 'id2'

    result = grid.filter('geoPostalCode != "23220"')
    assert len(result) == 1
    assert result[0]['id'] == 'id1'

    result = grid.filter('curVal < 75')
    assert len(result) == 1
    assert result[0]['siteRef'] == Ref('id1')

    result = grid.filter('curVal <= 75')
    assert len(result) == 2
    assert result[0]['id'] == 'id2'
    assert result[1]['siteRef'] == Ref('id1')

    result = grid.filter('curVal > 75')
    assert len(result) == 1
    assert result[0]['id'] == 'id1'

    result = grid.filter('curVal >= 75')
    assert len(result) == 2
    assert result[0]['id'] == 'id1'
    assert result[1]['id'] == 'id2'

    result = grid.filter('site or equip')
    assert len(result) == 2
    assert result[0]['id'] == 'id1'
    assert result[1]['siteRef'] == Ref('id1')

    result = grid.filter('equip and hvac')
    assert len(result) == 1
    assert result[0]['siteRef'] == Ref('id1')

    result = grid.filter('equip and not ahu')
    assert len(result) == 1
    assert result[0]['siteRef'] == Ref('id1')

    result = grid.filter('equip and siteRef->geoCity == "Chicago"')
    assert len(result) == 1
    assert result[0]['equip'] == 'Chicago'
Example #26
0
def test_grid_index():
    grid = Grid()
    grid.column['id'] = {}
    grid.column['val'] = {}
    grid.insert(0, {'id': 'idx1'})
    assert 'idx1' in grid._index
    assert grid['idx1']
    assert grid.get('idx1')
    grid.insert(1, {'id': 'idx2'})
    assert 'idx1' in grid._index
    assert 'idx2' in grid._index
    assert grid.get('idx2')
    grid[0] = {'id': 'idx3'}
    assert not 'idx1' in grid._index
    assert 'idx3' in grid._index
    assert grid.get('idx3')
    del grid[1]
    assert not 'idx2' in grid._index
    grid.extend([
        {
            'id': 'idx5'
        },
        {
            'id': 'idx6'
        },
    ])
    assert 'idx5' in grid._index
    assert 'idx6' in grid._index
    grid[0]['id'] = 'idx4'
    grid.reindex()
    assert 'idx4' in grid._index
    assert grid.get('idx4')
Example #27
0
def test_grid_equal():
    ref = Grid()
    ref.column['test'] = {}
    ref.extend([{'test': 1}, {'test': 2}, {'test': 3}])
    assert ref == copy.deepcopy(ref)
Example #28
0
def test_generated_filter_with_reference():
    grid = Grid(columns={'id': {}})
    grid.insert(0, {'id': 'id1'})
    assert filter_function('ref == @id1')(None, {"ref": Ref("id1")})