Skip to content

Commit

Permalink
Merge case24765_bugfix_overview
Browse files Browse the repository at this point in the history
Case24765 bugfix overview - Change in REST API
  • Loading branch information
ali-cetin-4ss authored Jan 6, 2021
2 parents a022087 + 3cd9df7 commit 390e38a
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 49 deletions.
30 changes: 19 additions & 11 deletions fourinsight/campaigns/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def __call__(self, dct):
"detachedTime",
"dashboardCloseDate",
),
location_keys=("location",),
location_keys=("location", "geoLocation"),
float_keys=(
"distanceFromWellhead",
"samplingRate",
Expand All @@ -112,6 +112,7 @@ def __call__(self, dct):
"height",
"addedMassCoefficient",
"alpha",
"waterDepth",
),
)

Expand Down Expand Up @@ -145,7 +146,7 @@ def get_campaigns(self, campaign_type=None):
Parameters
----------
campaign_type : str, optional
Campaign type ['generic', 'swim']. If None, all campaign
Campaign type ('campaign' or 'swim campaign'). If None, all campaign
types are returned.
Returns
Expand All @@ -157,20 +158,27 @@ def get_campaigns(self, campaign_type=None):
("id", "CampaignID"): None,
("campaignName", "Name"): None,
("campaignType", "Type"): None,
("client", "Client"): None,
("poNumber", "PO Number"): None,
("projectNumber", "Project Number"): None,
("vessel", "Vessel"): None,
("fieldTitle", "Field"): None,
("vesselContractor", "Vessel Contractor"): None,
("wellName", "Well Name"): None,
("wellId", "Well ID"): None,
("waterDepth", "Water Depth"): None,
("location", "Location"): None,
("mainDataProvider", "Main Data Provider"): None,
("startDate", "Start Date"): None,
("endDate", "End Date"): None,
("geoPositionId", "GeoTrack Position ID"): None,
("geoLocation", "GeoTrack Location"): None,
("geoTitle", "GeoTrack Title"): None,
("hsTimeseriesId", "Hs Timeseries ID"): None,
("tpTimeseriesId", "Tp Timeseries ID"): None,
("wdTimeseriesId", "Wd Timeseries ID"): None,
}

if not campaign_type:
response = self._session.get(self._url(""))
elif campaign_type.lower() == "swim campaign":
response = self._session.get(self._url("/Type/SWIM Campaign"))
elif campaign_type.lower() == "campaign":
response = self._session.get(self._url("/Type/Campaign"))
else:
raise ValueError("Unknown 'campaign_type'")
response = self._session.get(self._url(""))

response_out = [
_dict_rename(campaign_item, response_map)
Expand Down
8 changes: 1 addition & 7 deletions fourinsight/campaigns/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def overview(self):
response = self._campaigns_api.get_campaigns()
return pd.DataFrame.from_records(response, index="CampaignID")

def get(self, campaign_id, campaign_type=None):
def get(self, campaign_id):
"""
Get the campaign data from the database.
Expand All @@ -47,12 +47,6 @@ def get(self, campaign_id, campaign_type=None):
A campaign type specific object containing all relevant information
about the campaign.
"""
if campaign_type is not None:
warnings.warn(
"Deprecated. Campaign type is automatically inferred. "
"'campaign_type' keyword will be removed after 1st Jan 2021.",
DeprecationWarning,
)

campaign_type = self._campaigns_api.get_campaign_type(campaign_id)
Campaign = self._get_campaign_type(campaign_type)
Expand Down
14 changes: 0 additions & 14 deletions tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,6 @@ def test_get_campaigns(self, campaigns_api, auth_session, response):
auth_session.get.assert_called_once_with("/v1.0/Campaigns")
response.json.assert_called()

def test_get_campaigns_swim(self, campaigns_api, auth_session, response):
campaigns_api.get_campaigns(campaign_type="SWIM Campaign")
auth_session.get.assert_called_once_with("/v1.0/Campaigns/Type/SWIM Campaign")
response.json.assert_called()

def test_get_campaigns_generic(self, campaigns_api, auth_session, response):
campaigns_api.get_campaigns(campaign_type="Campaign")
auth_session.get.assert_called_once_with("/v1.0/Campaigns/Type/Campaign")
response.json.assert_called()

def test_get_campaigns_raises(self, campaigns_api):
with pytest.raises(ValueError):
campaigns_api.get_campaigns(campaign_type="invalid_type")

def test_get_campaign(self, campaigns_api, auth_session, response):
campaigns_api.get_campaign("1234")
auth_session.get.assert_called_once_with("/v1.0/Campaigns/1234")
Expand Down
32 changes: 19 additions & 13 deletions tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,30 @@ def test_overview(self, camp_client, auth_session):

records = [
{
"CampaignID": "6c181d43-0fba-425c-b8bf-06dfb4a661db",
"CampaignID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"Name": "1086 - 31/2-F-6",
"Type": "SWIM Campaign",
"Client": "string",
"PO Number": "string",
"Project Number": "string",
"Vessel": "Songa Endurance",
"Field": "Troll",
"Vessel Contractor": "string",
"Well Name": "31/2-F-6",
"Start Date": pd.to_datetime("2017-10-21T00:00:00+00:00"),
}
"Well ID": "string",
"Water Depth": 100.0,
"Location": (1.3, 2.4),
"Main Data Provider": "string",
"Start Date": pd.to_datetime("2021-01-05T13:49:51.815Z"),
"End Date": pd.to_datetime("2021-01-05T13:49:51.815Z"),
"GeoTrack Position ID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"GeoTrack Location": (3.2, 4.5),
"GeoTrack Title": "string",
"Hs Timeseries ID": "string",
"Tp Timeseries ID": "string",
"Wd Timeseries ID": "string",
},
]

df_expected = pd.DataFrame.from_records(records, index="CampaignID")
pd.testing.assert_frame_equal(df, df_expected)

Expand All @@ -51,12 +66,3 @@ def test_get_generic(self, mock_campaign, camp_client, auth_session):
def test_get_swim(self, mock_campaign, camp_client, auth_session):
camp_client.get("test_swim_id")
mock_campaign.assert_called_once_with(auth_session, "test_swim_id")

@patch("fourinsight.campaigns.client.SwimCampaign")
def test_get_warning(self, mock_campaign, camp_client, auth_session):
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("always")
camp_client.get("test_swim_id", campaign_type="swim")

assert len(w) == 1
assert issubclass(w[-1].category, DeprecationWarning)
23 changes: 19 additions & 4 deletions tests/testdata/get_data.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,28 @@
CAMPAIGNS_DATA_LIST = [
{
"id": "6c181d43-0fba-425c-b8bf-06dfb4a661db",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"modified": "string",
"campaignName": "1086 - 31/2-F-6",
"campaignType": "SWIM Campaign",
"poNumber": "string",
"projectNumber": "string",
"client": "string",
"vessel": "Songa Endurance",
"fieldTitle": "Troll",
"vesselContractor": "string",
"wellName": "31/2-F-6",
"startDate": "2017-10-21T00:00:00+00:00",
}
"wellId": "string",
"waterDepth": "100.",
"location": "1.3#2.4",
"mainDataProvider": "string",
"startDate": "2021-01-05T13:49:51.815Z",
"endDate": "2021-01-05T13:49:51.815Z",
"geoPositionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"geoLocation": "3.2#4.5",
"geoTitle": "string",
"hsTimeseriesId": "string",
"tpTimeseriesId": "string",
"wdTimeseriesId": "string",
},
]


Expand Down

0 comments on commit 390e38a

Please sign in to comment.