add filepath handling and integrated setup method, closes #3

This commit is contained in:
Florian Förster 2025-04-03 09:37:37 +02:00
parent 11c313087f
commit 2a66b8582d
3 changed files with 44 additions and 20 deletions

View File

@ -47,14 +47,19 @@ namespace dopt.DeltaBarth.Tests
{ {
return base.GetBaseApiUrl(); return base.GetBaseApiUrl();
} }
new public void SetzeBasisApiUrl(string basisApiUrl) public new string GetDataPath()
{ {
base.SetzeBasisApiUrl(basisApiUrl); return base.GetDataPath();
}
public new void Setup(string datenPfad, string basisApiUrl)
{
base.Setup(datenPfad, basisApiUrl);
} }
} }
[TestClass] [TestClass]
public sealed class PluginTest public sealed class PluginTest
{ {
private const string baseDataPath = @"A:\Arbeitsaufgaben\Delta-Barth\cs-wrapper\dopt.DeltaBarth\test_data_path";
internal Config config = new Config(); internal Config config = new Config();
static void PrettyPrint(object toSerialise) static void PrettyPrint(object toSerialise)
{ {
@ -85,13 +90,19 @@ namespace dopt.DeltaBarth.Tests
test.Dispose(); test.Dispose();
} }
[TestMethod] [TestMethod]
public void Set_and_Obtain_BaseApiUrl_Test() public void SetupSession_Test()
{ {
var test = new TPlugin(); var test = new TPlugin();
string apiUrlSet = "http://10.2.22.21:8080/api/"; string apiUrlSet = "http://10.2.22.21:8080/api/";
test.SetzeBasisApiUrl(apiUrlSet); test.Setup(baseDataPath, apiUrlSet);
// data path
var dataPathGet = test.GetDataPath();
Console.WriteLine($"Result for data path from Python session was: {dataPathGet}");
bool pathElementsContained = dataPathGet.Contains("test_data_path");
Assert.IsTrue(pathElementsContained);
// API URL
var apiUrlGet = test.GetBaseApiUrl(); var apiUrlGet = test.GetBaseApiUrl();
Console.WriteLine($"Result from Python session was: {apiUrlGet}"); Console.WriteLine($"Result for API URL from Python session was: {apiUrlGet}");
Assert.AreEqual(apiUrlSet, apiUrlGet); Assert.AreEqual(apiUrlSet, apiUrlGet);
test.Dispose(); test.Dispose();
} }
@ -100,7 +111,7 @@ namespace dopt.DeltaBarth.Tests
{ {
var test = new TPlugin(); var test = new TPlugin();
string apiUrlSet = "http://10.2.22.21:8080/api/", user = "user", password = "password", database = "DB1", mandant = "mandant1"; string apiUrlSet = "http://10.2.22.21:8080/api/", user = "user", password = "password", database = "DB1", mandant = "mandant1";
test.Startup(apiUrlSet, user, password, database, mandant); test.Startup(baseDataPath, apiUrlSet, user, password, database, mandant);
var apiUrlGet = test.GetBaseApiUrl(); var apiUrlGet = test.GetBaseApiUrl();
var creds = test.GetCredentials(); var creds = test.GetCredentials();
Console.WriteLine($"Result from Python session was: API-URL={apiUrlGet}, creds={creds}"); Console.WriteLine($"Result from Python session was: API-URL={apiUrlGet}, creds={creds}");
@ -117,7 +128,7 @@ namespace dopt.DeltaBarth.Tests
{ {
var test = new TPlugin(); var test = new TPlugin();
string apiUrlSet = "http://10.2.22.21:8080/api/", user = "user", password = "password", database = "DB1", mandant = "mandant1"; string apiUrlSet = "http://10.2.22.21:8080/api/", user = "user", password = "password", database = "DB1", mandant = "mandant1";
test.Startup(apiUrlSet, user, password, database, mandant); test.Startup(baseDataPath, apiUrlSet, user, password, database, mandant);
var res = test.UmsatzprognoseDummy(null, null); var res = test.UmsatzprognoseDummy(null, null);
PrettyPrint(res); PrettyPrint(res);
test.Dispose(); test.Dispose();
@ -127,7 +138,7 @@ namespace dopt.DeltaBarth.Tests
{ {
var test = new TPlugin(); var test = new TPlugin();
string apiUrlSet = "http://10.2.22.21:8080/api/", user = "user", password = "password", database = "DB1", mandant = "mandant1"; string apiUrlSet = "http://10.2.22.21:8080/api/", user = "user", password = "password", database = "DB1", mandant = "mandant1";
test.Startup(apiUrlSet, user, password, database, mandant); test.Startup(baseDataPath, apiUrlSet, user, password, database, mandant);
var comp_id = 1000; var comp_id = 1000;
var res = test.UmsatzprognoseDummy(comp_id, null); var res = test.UmsatzprognoseDummy(comp_id, null);
PrettyPrint(res); PrettyPrint(res);
@ -138,7 +149,7 @@ namespace dopt.DeltaBarth.Tests
{ {
var test = new TPlugin(); var test = new TPlugin();
string apiUrlSet = "http://10.2.22.21:8080/api/", user = "user", password = "password", database = "DB1", mandant = "mandant1"; string apiUrlSet = "http://10.2.22.21:8080/api/", user = "user", password = "password", database = "DB1", mandant = "mandant1";
test.Startup(apiUrlSet, user, password, database, mandant); test.Startup(baseDataPath, apiUrlSet, user, password, database, mandant);
var date = new DateTime(2023, 1, 1, 12, 45, 30); var date = new DateTime(2023, 1, 1, 12, 45, 30);
var res = test.UmsatzprognoseDummy(null, date); var res = test.UmsatzprognoseDummy(null, date);
PrettyPrint(res); PrettyPrint(res);
@ -151,7 +162,7 @@ namespace dopt.DeltaBarth.Tests
{ {
var test = new TPlugin(); var test = new TPlugin();
string apiUrlSet = config.apiUrl, user = config.username, password = config.password, database = config.database, mandant = config.mandant; string apiUrlSet = config.apiUrl, user = config.username, password = config.password, database = config.database, mandant = config.mandant;
test.Startup(apiUrlSet, user, password, database, mandant); test.Startup(baseDataPath, apiUrlSet, user, password, database, mandant);
var comp_id = 1024; var comp_id = 1024;
var res = test.Umsatzprognose(comp_id, null); var res = test.Umsatzprognose(comp_id, null);
PrettyPrint(res); PrettyPrint(res);
@ -163,7 +174,7 @@ namespace dopt.DeltaBarth.Tests
{ {
var test = new TPlugin(); var test = new TPlugin();
string apiUrlSet = config.apiUrl, user = config.username, password = config.password, database = config.database, mandant = config.mandant; string apiUrlSet = config.apiUrl, user = config.username, password = config.password, database = config.database, mandant = config.mandant;
test.Startup(apiUrlSet, user, password, database, mandant); test.Startup(baseDataPath, apiUrlSet, user, password, database, mandant);
var date = new DateTime(2030, 1, 1, 12, 45, 30); var date = new DateTime(2030, 1, 1, 12, 45, 30);
var res = test.Umsatzprognose(null, date); var res = test.Umsatzprognose(null, date);
PrettyPrint(res); PrettyPrint(res);
@ -175,7 +186,7 @@ namespace dopt.DeltaBarth.Tests
{ {
var test = new TPlugin(); var test = new TPlugin();
string apiUrlSet = config.apiUrl, user = config.username, password = config.password, database = config.database, mandant = config.mandant; string apiUrlSet = config.apiUrl, user = config.username, password = config.password, database = config.database, mandant = config.mandant;
test.Startup(apiUrlSet, user, password, database, mandant); test.Startup(baseDataPath, apiUrlSet, user, password, database, mandant);
var date = new DateTime(2015, 1, 1, 12, 45, 30); var date = new DateTime(2015, 1, 1, 12, 45, 30);
var res = test.Umsatzprognose(null, date); var res = test.Umsatzprognose(null, date);
PrettyPrint(res); PrettyPrint(res);

View File

@ -16,17 +16,12 @@ namespace dopt.DeltaBarth
pyModPipeline = Py.Import("delta_barth.pipelines"); pyModPipeline = Py.Import("delta_barth.pipelines");
} }
} }
public void Startup(string basisApiUrl, string nutzername, string passwort, string datenbank, string mandant) public void Startup(string datenPfad, string basisApiUrl, string nutzername, string passwort, string datenbank, string mandant)
{ {
AssertNotDisposed(); AssertNotDisposed();
SetzeBasisApiUrl(basisApiUrl); Setup(datenPfad, basisApiUrl);
SetzeNutzerdaten(nutzername, passwort, datenbank, mandant); SetzeNutzerdaten(nutzername, passwort, datenbank, mandant);
} }
protected void SetzeBasisApiUrl(string basisApiUrl)
{
AssertNotDisposed();
pyModManagement.set_base_url(basisApiUrl);
}
public void SetzeNutzerdaten(string nutzername, string passwort, string datenbank, string mandant) public void SetzeNutzerdaten(string nutzername, string passwort, string datenbank, string mandant)
{ {
AssertNotDisposed(); AssertNotDisposed();
@ -58,6 +53,14 @@ namespace dopt.DeltaBarth
return parsed; return parsed;
} }
protected void Setup(string datenPfad, string basisApiUrl)
{
AssertNotDisposed();
using (Py.GIL())
{
pyModManagement.setup(datenPfad, basisApiUrl);
}
}
protected string GetBaseApiUrl() protected string GetBaseApiUrl()
{ {
AssertNotDisposed(); AssertNotDisposed();
@ -68,6 +71,16 @@ namespace dopt.DeltaBarth
} }
return pyJson; return pyJson;
} }
protected string GetDataPath()
{
AssertNotDisposed();
string pyJson;
using (Py.GIL())
{
pyJson = (string)pyModManagement.get_data_path();
}
return pyJson;
}
protected DataObjects.Credentials GetCredentials() protected DataObjects.Credentials GetCredentials()
{ {
AssertNotDisposed(); AssertNotDisposed();

View File

@ -6,7 +6,7 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x64</PlatformTarget>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<Version>0.2.0</Version> <Version>0.3.0</Version>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>