#4430 Implement GetDaysSinceStart and add way of connecting to existing ResInsight in pytest

This commit is contained in:
Gaute Lindkvist 2019-06-06 09:12:44 +02:00
parent 05451aa904
commit 4701ea5134
4 changed files with 49 additions and 10 deletions

View File

@ -9,7 +9,7 @@ service Case
rpc GetCellInfoForActiveCells(CellInfoRequest) returns (stream CellInfoArray) {} rpc GetCellInfoForActiveCells(CellInfoRequest) returns (stream CellInfoArray) {}
rpc GetCoarseningInfoArray(CaseRequest) returns (CoarseningInfoArray) {} rpc GetCoarseningInfoArray(CaseRequest) returns (CoarseningInfoArray) {}
rpc GetTimeSteps(CaseRequest) returns (TimeStepDates) {} rpc GetTimeSteps(CaseRequest) returns (TimeStepDates) {}
rpc GetTimeStepDaysSinceStart(CaseRequest) returns (DoubleDates) {} rpc GetDaysSinceStart(CaseRequest) returns (DaysSinceStart) {}
rpc GetCaseInfo(CaseRequest) returns (CaseInfo) {} rpc GetCaseInfo(CaseRequest) returns (CaseInfo) {}
} }
@ -110,7 +110,7 @@ message TimeStepDate
int32 second = 6; int32 second = 6;
} }
message DoubleDates message DaysSinceStart
{ {
repeated double date_decimals = 1; repeated double day_decimals = 1;
} }

View File

@ -8,10 +8,6 @@ import rips
_rips_instance = None _rips_instance = None
if not os.environ.get("RESINSIGHT_EXECUTABLE"):
print("ERROR: Need to have the environment variable RESINSIGHT_EXECUTABLE set to a valid ResInsight executable")
exit(1)
@pytest.fixture @pytest.fixture
def rips_instance(): def rips_instance():
return _rips_instance return _rips_instance
@ -22,12 +18,18 @@ def initializeTest():
def pytest_addoption(parser): def pytest_addoption(parser):
parser.addoption("--console", action="store_true", default=False, help="Run as console application") parser.addoption("--console", action="store_true", default=False, help="Run as console application")
parser.addoption("--existing", action="store_true", default=False, help="Look for existing ResInsight")
def pytest_configure(config): def pytest_configure(config):
global _rips_instance global _rips_instance
console = False console = False
if config.getoption('--console'): if config.getoption('--existing'):
print("Looking for existing ResInsight")
_rips_instance = rips.Instance.find()
elif config.getoption('--console'):
print("Should run as console app") print("Should run as console app")
console = True console = True
_rips_instance = rips.Instance.launch(console=console) _rips_instance = rips.Instance.launch(console=console)
assert(_rips_instance is not None) if not _rips_instance:
print("Need a valid ResInsight executable to launch tests")
exit(0)

View File

@ -20,7 +20,9 @@
#include "RiaSocketTools.h" #include "RiaSocketTools.h"
#include "RigActiveCellInfo.h" #include "RigActiveCellInfo.h"
#include "RigCaseCellResultsData.h"
#include "RigEclipseCaseData.h" #include "RigEclipseCaseData.h"
#include "RigEclipseResultAddress.h"
#include "RigMainGrid.h" #include "RigMainGrid.h"
#include "RimEclipseCase.h" #include "RimEclipseCase.h"
@ -275,6 +277,39 @@ RiaGrpcCaseService::GetTimeSteps(grpc::ServerContext* context, const rips::CaseR
return grpc::Status(grpc::NOT_FOUND, "Eclipse Case not found"); return grpc::Status(grpc::NOT_FOUND, "Eclipse Case not found");
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
grpc::Status RiaGrpcCaseService::GetDaysSinceStart(grpc::ServerContext* context,
const rips::CaseRequest* request,
rips::DaysSinceStart* reply)
{
RimCase* rimCase = findCase(request->id());
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>(rimCase);
if (eclipseCase)
{
RigEclipseResultAddress addrToMaxTimeStepCountResult;
if (eclipseCase && eclipseCase->eclipseCaseData())
{
eclipseCase->eclipseCaseData()->results(RiaDefines::MATRIX_MODEL)->maxTimeStepCount(&addrToMaxTimeStepCountResult);
if (!addrToMaxTimeStepCountResult.isValid())
{
return grpc::Status(grpc::NOT_FOUND, "Invalid result. No time steps found.");
}
}
std::vector<double> daysSinceSimulationStart =
eclipseCase->eclipseCaseData()->results(RiaDefines::MATRIX_MODEL)->daysSinceSimulationStart(addrToMaxTimeStepCountResult);
for (auto days : daysSinceSimulationStart)
{
reply->add_day_decimals(days);
}
return grpc::Status::OK;
}
return grpc::Status(grpc::NOT_FOUND, "Eclipse Case not found");
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
@ -320,6 +355,7 @@ std::vector<RiaGrpcCallbackInterface*> RiaGrpcCaseService::createCallbacks()
return {new RiaGrpcUnaryCallback<Self, CaseRequest, GridCount>(this, &Self::GetGridCount, &Self::RequestGetGridCount), return {new RiaGrpcUnaryCallback<Self, CaseRequest, GridCount>(this, &Self::GetGridCount, &Self::RequestGetGridCount),
new RiaGrpcUnaryCallback<Self, CellInfoRequest, CellCount>(this, &Self::GetCellCount, &Self::RequestGetCellCount), new RiaGrpcUnaryCallback<Self, CellInfoRequest, CellCount>(this, &Self::GetCellCount, &Self::RequestGetCellCount),
new RiaGrpcUnaryCallback<Self, CaseRequest, TimeStepDates>(this, &Self::GetTimeSteps, &Self::RequestGetTimeSteps), new RiaGrpcUnaryCallback<Self, CaseRequest, TimeStepDates>(this, &Self::GetTimeSteps, &Self::RequestGetTimeSteps),
new RiaGrpcUnaryCallback<Self, CaseRequest, DaysSinceStart>(this, &Self::GetDaysSinceStart, &Self::RequestGetDaysSinceStart),
new RiaGrpcUnaryCallback<Self, CaseRequest, CaseInfo>(this, &Self::GetCaseInfo, &Self::RequestGetCaseInfo), new RiaGrpcUnaryCallback<Self, CaseRequest, CaseInfo>(this, &Self::GetCaseInfo, &Self::RequestGetCaseInfo),
new RiaGrpcServerStreamCallback<Self, CellInfoRequest, CellInfoArray, RiaActiveCellInfoStateHandler>( new RiaGrpcServerStreamCallback<Self, CellInfoRequest, CellInfoArray, RiaActiveCellInfoStateHandler>(
this, &Self::GetCellInfoForActiveCells, &Self::RequestGetCellInfoForActiveCells, new RiaActiveCellInfoStateHandler)}; this, &Self::GetCellInfoForActiveCells, &Self::RequestGetCellInfoForActiveCells, new RiaActiveCellInfoStateHandler)};

View File

@ -72,6 +72,7 @@ public:
grpc::Status GetGridCount(grpc::ServerContext* context, const rips::CaseRequest* request, rips::GridCount* reply) override; grpc::Status GetGridCount(grpc::ServerContext* context, const rips::CaseRequest* request, rips::GridCount* reply) override;
grpc::Status GetCellCount(grpc::ServerContext* context, const rips::CellInfoRequest* request, rips::CellCount* reply) override; grpc::Status GetCellCount(grpc::ServerContext* context, const rips::CellInfoRequest* request, rips::CellCount* reply) override;
grpc::Status GetTimeSteps(grpc::ServerContext* context, const rips::CaseRequest* request, rips::TimeStepDates* reply) override; grpc::Status GetTimeSteps(grpc::ServerContext* context, const rips::CaseRequest* request, rips::TimeStepDates* reply) override;
grpc::Status GetDaysSinceStart(grpc::ServerContext* context, const rips::CaseRequest* request, rips::DaysSinceStart* reply) override;
grpc::Status GetCaseInfo(grpc::ServerContext* context, const rips::CaseRequest* request, rips::CaseInfo* reply) override; grpc::Status GetCaseInfo(grpc::ServerContext* context, const rips::CaseRequest* request, rips::CaseInfo* reply) override;
grpc::Status GetCellInfoForActiveCells(grpc::ServerContext* context, grpc::Status GetCellInfoForActiveCells(grpc::ServerContext* context,