def test_init_hh_data(sess, mocker): """New style channels""" site = Site.insert(sess, "CI017", "Water Works") market_role_Z = MarketRole.insert(sess, "Z", "Non-core") participant = Participant.insert(sess, "CALB", "AK Industries") participant.insert_party(sess, market_role_Z, "None core", utc_datetime(2000, 1, 1), None, None) bank_holiday_rate_script = {"bank_holidays": []} Contract.insert_non_core( sess, "bank_holidays", "", {}, utc_datetime(2000, 1, 1), None, bank_holiday_rate_script, ) market_role_X = MarketRole.insert(sess, "X", "Supplier") market_role_M = MarketRole.insert(sess, "M", "Mop") market_role_C = MarketRole.insert(sess, "C", "HH Dc") market_role_R = MarketRole.insert(sess, "R", "Distributor") participant.insert_party(sess, market_role_M, "Fusion Mop Ltd", utc_datetime(2000, 1, 1), None, None) participant.insert_party(sess, market_role_X, "Fusion Ltc", utc_datetime(2000, 1, 1), None, None) participant.insert_party(sess, market_role_C, "Fusion DC", utc_datetime(2000, 1, 1), None, None) mop_contract = Contract.insert_mop(sess, "Fusion", participant, "", {}, utc_datetime(2000, 1, 1), None, {}) dc_contract = Contract.insert_dc(sess, "Fusion DC 2000", participant, "", {}, utc_datetime(2000, 1, 1), None, {}) pc = Pc.insert(sess, "00", "hh", utc_datetime(2000, 1, 1), None) insert_cops(sess) cop = Cop.get_by_code(sess, "5") insert_comms(sess) comm = Comm.get_by_code(sess, "GSM") imp_supplier_contract = Contract.insert_supplier( sess, "Fusion Supplier 2000", participant, "", {}, utc_datetime(2000, 1, 1), None, {}, ) dno = participant.insert_party(sess, market_role_R, "WPD", utc_datetime(2000, 1, 1), None, "22") meter_type = MeterType.insert(sess, "C5", "COP 1-5", utc_datetime(2000, 1, 1), None) meter_payment_type = MeterPaymentType.insert(sess, "CR", "Credit", utc_datetime(1996, 1, 1), None) Mtc.insert( sess, None, "845", "HH COP5 And Above With Comms", False, False, True, meter_type, meter_payment_type, 0, utc_datetime(1996, 1, 1), None, ) insert_voltage_levels(sess) voltage_level = VoltageLevel.get_by_code(sess, "HV") dno.insert_llfc( sess, "510", "PC 5-8 & HH HV", voltage_level, False, True, utc_datetime(1996, 1, 1), None, ) dno.insert_llfc( sess, "521", "Export (HV)", voltage_level, False, False, utc_datetime(1996, 1, 1), None, ) insert_sources(sess) source = Source.get_by_code(sess, "net") insert_energisation_statuses(sess) energisation_status = EnergisationStatus.get_by_code(sess, "E") gsp_group = GspGroup.insert(sess, "_L", "South Western") supply = site.insert_e_supply( sess, source, None, "Bob", utc_datetime(2000, 1, 1), None, gsp_group, mop_contract, "773", dc_contract, "ghyy3", "hgjeyhuw", pc, "845", cop, comm, None, energisation_status, {}, "22 7867 6232 781", "510", imp_supplier_contract, "7748", 361, None, None, None, None, None, ) era = supply.eras[0] channel = era.insert_channel(sess, True, "ACTIVE") data_raw = [{ "start_date": utc_datetime(2009, 8, 10), "value": 10, "status": "A", }] channel.add_hh_data(sess, data_raw) sess.commit() caches = {} chunk_start = utc_datetime(2009, 7, 31, 23, 00) chunk_finish = utc_datetime(2009, 8, 31, 22, 30) is_import = True full_channels, hhd = chellow.computer._init_hh_data( sess, caches, era, chunk_start, chunk_finish, is_import) assert full_channels expected_hhd = { utc_datetime(2009, 8, 10): { "imp-msp-kvarh": 0.0, "imp-msp-kvar": 0.0, "exp-msp-kvarh": 0.0, "exp-msp-kvar": 0.0, "status": "A", "hist-kwh": 10.0, "msp-kwh": 10.0, "msp-kw": 20.0, } } assert hhd == expected_hhd
def test_Supply_insert_era_at(sess): """Where an era is inserted in the last HH of another era, check the template era is the one at the insertion date. """ site = Site.insert(sess, "CI017", "Water Works") market_role_Z = MarketRole.insert(sess, "Z", "Non-core") participant = Participant.insert(sess, "CALB", "AK Industries") participant.insert_party(sess, market_role_Z, "None core", utc_datetime(2000, 1, 1), None, None) market_role_X = MarketRole.insert(sess, "X", "Supplier") market_role_M = MarketRole.insert(sess, "M", "Mop") market_role_C = MarketRole.insert(sess, "C", "HH Dc") market_role_R = MarketRole.insert(sess, "R", "Distributor") participant.insert_party(sess, market_role_M, "Fusion Mop Ltd", utc_datetime(2000, 1, 1), None, None) participant.insert_party(sess, market_role_X, "Fusion Ltc", utc_datetime(2000, 1, 1), None, None) participant.insert_party(sess, market_role_C, "Fusion DC", utc_datetime(2000, 1, 1), None, None) mop_contract = Contract.insert_mop(sess, "Fusion", participant, "", {}, utc_datetime(2000, 1, 1), None, {}) dc_contract = Contract.insert_dc(sess, "Fusion DC 2000", participant, "", {}, utc_datetime(2000, 1, 1), None, {}) pc = Pc.insert(sess, "00", "hh", utc_datetime(2000, 1, 1), None) insert_cops(sess) cop = Cop.get_by_code(sess, "5") insert_comms(sess) comm = Comm.get_by_code(sess, "GSM") imp_supplier_contract = Contract.insert_supplier( sess, "Fusion Supplier 2000", participant, "", {}, utc_datetime(2000, 1, 1), None, {}, ) dno = participant.insert_party(sess, market_role_R, "WPD", utc_datetime(2000, 1, 1), None, "22") meter_type = MeterType.insert(sess, "C5", "COP 1-5", utc_datetime(2000, 1, 1), None) meter_payment_type = MeterPaymentType.insert(sess, "CR", "Credit", utc_datetime(1996, 1, 1), None) mtc_845 = Mtc.insert( sess, None, "845", "HH COP5 And Above With Comms", False, False, True, meter_type, meter_payment_type, 0, utc_datetime(1996, 1, 1), None, ) insert_voltage_levels(sess) voltage_level = VoltageLevel.get_by_code(sess, "HV") dno.insert_llfc( sess, "510", "PC 5-8 & HH HV", voltage_level, False, True, utc_datetime(1996, 1, 1), None, ) dno.insert_llfc( sess, "521", "Export (HV)", voltage_level, False, False, utc_datetime(1996, 1, 1), None, ) insert_sources(sess) source = Source.get_by_code(sess, "net") insert_energisation_statuses(sess) energisation_status = EnergisationStatus.get_by_code(sess, "E") gsp_group = GspGroup.insert(sess, "_L", "South Western") era1_msn = "e1msn" imp_mpan_core = "22 7867 6232 781" supply = site.insert_e_supply( sess, source, None, "Bob", utc_datetime(2000, 1, 1), None, gsp_group, mop_contract, "773", dc_contract, "ghyy3", era1_msn, pc, "845", cop, comm, None, energisation_status, {}, imp_mpan_core, "510", imp_supplier_contract, "7748", 361, None, None, None, None, None, ) era1 = supply.eras[0] era2_start_date = utc_datetime(2009, 7, 31, 23, 30) era2 = supply.insert_era_at(sess, era2_start_date) era2_msn = "e2msn" era2.update( sess, era2_start_date, None, mop_contract, "379540", dc_contract, "547yt", era2_msn, pc, mtc_845, cop, comm, None, energisation_status, {}, imp_mpan_core, "510", imp_supplier_contract, "9745y6", 361, None, None, None, None, None, ) sess.commit() start_date = utc_datetime(2009, 7, 31, 23, 00) era3 = supply.insert_era_at(sess, start_date) assert era3.msn == era1.msn