Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions gsy_framework/data_classes.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,12 +184,13 @@ def __eq__(self, other) -> bool:
def csv_values(self) -> Tuple:
"""Return values of class members that are needed for creation of CSV export."""
rate = round(self.energy_rate, 4)
return self.creation_time, rate, self.energy, self.price, self.seller
return self.creation_time, rate, self.energy, self.price, self.seller, self.seller_id

@classmethod
def csv_fields(cls) -> Tuple:
"""Return labels for csv_values for CSV export."""
return "creation_time", "rate [ct./kWh]", "energy [kWh]", "price [ct.]", "seller"
return ("creation_time", "rate [ct./kWh]", "energy [kWh]",
"price [ct.]", "seller", "seller_id")

@staticmethod
def copy(offer: "Offer") -> "Offer":
Expand Down Expand Up @@ -266,12 +267,13 @@ def from_dict(bid: Dict) -> "Bid":
def csv_values(self) -> Tuple:
"""Return values of class members that are needed for creation of CSV export."""
rate = round(self.energy_rate, 4)
return self.creation_time, rate, self.energy, self.price, self.buyer
return self.creation_time, rate, self.energy, self.price, self.buyer, self.buyer_id

@classmethod
def csv_fields(cls) -> Tuple:
"""Return labels for csv_values for CSV export."""
return "creation_time", "rate [ct./kWh]", "energy [kWh]", "price [ct.]", "buyer"
return ("creation_time", "rate [ct./kWh]", "energy [kWh]",
"price [ct.]", "buyer", "buyer_id")

def __eq__(self, other) -> bool:
return (self.id == other.id and
Expand Down Expand Up @@ -341,12 +343,14 @@ def __str__(self) -> str:
@classmethod
def csv_fields(cls) -> Tuple:
"""Return labels for csv_values for CSV export."""
return "creation_time", "rate [ct./kWh]", "energy [kWh]", "seller", "buyer"
return ("creation_time", "rate [ct./kWh]", "energy [kWh]",
"seller", "buyer", "seller_id", "buyer_id")

def csv_values(self) -> Tuple:
"""Return values of class members that are needed for creation of CSV export."""
rate = round(self.offer_bid.energy_rate, 4)
return self.creation_time, rate, self.offer_bid.energy, self.seller, self.buyer
return (self.creation_time, rate, self.offer_bid.energy,
self.seller, self.buyer, self.seller_id, self.buyer_id)

def to_json_string(self) -> str:
"""Return json string of the representation."""
Expand Down
44 changes: 35 additions & 9 deletions tests/test_dataclasses.py
Original file line number Diff line number Diff line change
Expand Up @@ -332,12 +332,18 @@ def test_csv_values(self):
)
rate = round(offer.energy_rate, 4)
assert offer.csv_values() == (
offer.creation_time, rate, offer.energy, offer.price, offer.seller)
offer.creation_time, rate, offer.energy, offer.price, offer.seller, offer.seller_id)

@staticmethod
def test_csv_fields():
assert (Offer.csv_fields() ==
("creation_time", "rate [ct./kWh]", "energy [kWh]", "price [ct.]", "seller"))
assert (
Offer.csv_fields() == (
"creation_time",
"rate [ct./kWh]",
"energy [kWh]",
"price [ct.]",
"seller",
"seller_id"))

def test_copy(self):
offer = Offer(
Expand Down Expand Up @@ -445,12 +451,19 @@ def test_csv_values(self):
**self.initial_data
)
rate = round(bid.energy_rate, 4)
assert bid.csv_values() == (bid.creation_time, rate, bid.energy, bid.price, bid.buyer)
assert (bid.csv_values() ==
(bid.creation_time, rate, bid.energy, bid.price, bid.buyer, bid.buyer_id))

@staticmethod
def test_csv_fields():
assert (Bid.csv_fields() ==
("creation_time", "rate [ct./kWh]", "energy [kWh]", "price [ct.]", "buyer"))
assert (
Bid.csv_fields() == (
"creation_time",
"rate [ct./kWh]",
"energy [kWh]",
"price [ct.]",
"buyer",
"buyer_id"))


class TestTradeBidOfferInfo:
Expand Down Expand Up @@ -492,13 +505,26 @@ def test_str(self):
@staticmethod
def test_csv_fields():
assert Trade.csv_fields() == (
"creation_time", "rate [ct./kWh]", "energy [kWh]", "seller", "buyer")
"creation_time",
"rate [ct./kWh]",
"energy [kWh]",
"seller",
"buyer",
"seller_id",
"buyer_id")

def test_csv_values(self):
trade = Trade(**self.initial_data)
rate = round(trade.offer_bid.energy_rate, 4)
assert (trade.csv_values() ==
(trade.creation_time, rate, trade.offer_bid.energy, trade.seller, trade.buyer))
assert (
trade.csv_values() == (
trade.creation_time,
rate,
trade.offer_bid.energy,
trade.seller,
trade.buyer,
trade.seller_id,
trade.buyer_id))

def test_to_json_string(self):
trade = Trade(**self.initial_data)
Expand Down