def test_getReferenceObjectList():
    """py.test for getReferenceObjectList"""
    thedata = (("zone".upper(), ['ZoneNames',
             'OutFaceEnvNames',
             'ZoneAndZoneListNames',
             'AirflowNetworkNodeAndZoneNames'],
             [('SIZING:ZONE', 1),
              ('ZONEHVAC:EQUIPMENTCONNECTIONS', 1),
              ('BUILDINGSURFACE:DETAILED', 4),
              ('FENESTRATIONSURFACE:DETAILED', 5),
              ('BUILDINGSURFACE:DETAILED', 6),
              ('LIGHTS', 2),
              ('PEOPLE', 2),
              ('ZONEINFILTRATION:DESIGNFLOWRATE', 2),
              ('ELECTRICEQUIPMENT', 2),
              ('ZONECONTROL:THERMOSTAT', 2)]
             ), # key, refs, reflist
    )
    fname = StringIO("")
    data, commdct = readidf.readdatacommdct(fname, iddV6_0.theidd,
                                                        iddV6_0.commdct)
    theidd = iddV6_0.theidd
    idd = eplus_functions.Idd(commdct, iddV6_0.commlst, theidd, iddV6_0.block)
    idfw = eplus_functions.IdfWrapper(data, idd)
    for key, refs, reflist in thedata:
        anobject = eplus_functions.makeanobject(data, theidd, commdct, 
                                                    key, objname="azone")
        data.dt[key].append(anobject)
        for akey, fieldid, in reflist:
            anobject = eplus_functions.makeanobject(data, theidd, commdct, 
                                                        akey, objname="azone")
            data.dt[akey].append(anobject)
        result = eplus_functions.getReferenceObjectList(idfw, refs)
        assert result == reflist
def test_newname2references_inner():
    """py.test for newname2references_inner"""
    # a zone name is changed. It is refered by lights and people.
    # test if the reference in lights and people also change        
    fname = StringIO("")
    data, commdct = readidf.readdatacommdct(fname, iddV6_0.theidd,
                                                        iddV6_0.commdct)
    theidd = iddV6_0.theidd
    idd = eplus_functions.Idd(commdct, iddV6_0.commlst, theidd, iddV6_0.block)
    idfw = eplus_functions.IdfWrapper(data, idd)
    # - 
    zonekey = 'zone'.upper()
    lightkey = 'lights'.upper()
    peoplekey = 'people'.upper()
    keys = [zonekey, lightkey, peoplekey]
    keys = keys + keys
    names = ['z1', 'l1', 'p1', 'z2', 'l2', 'p2']
    for key, name  in zip(keys, names):
        anobject = eplus_functions.makeanobject(data, theidd, commdct, 
                                                    key, objname="name")
        data.dt[key].append(anobject)
    data.dt[lightkey][0][2] = 'z1'
    data.dt[peoplekey][0][2] = 'z1'
    data.dt[lightkey][1][2] = 'z2'
    data.dt[peoplekey][1][2] = 'z2'
    oldname, newname = 'z1', 'zz1'
    # = 
    refs = eplus_functions.getreferences(idfw, zonekey, 1)
    reflist = eplus_functions.getReferenceObjectList(idfw, refs)
    # - 
    data.dt[zonekey][0][1] = newname
    eplus_functions.newname2references_inner(idfw, reflist, oldname, newname)
    assert data.dt[lightkey][0][2] == newname
    assert data.dt[peoplekey][0][2] == newname
    assert data.dt[lightkey][1][2] == 'z2'
    assert data.dt[peoplekey][1][2] == 'z2'