From 86c33475de2845a7672950bdeb87b58587695e49 Mon Sep 17 00:00:00 2001
From: Henry Luetcke <hluetcke@ethz.ch>
Date: Tue, 6 Jul 2021 15:11:40 +0200
Subject: [PATCH] fix bug in new_experiment function

---
 OpenBis.m           | 21 +++++++++++++++------
 obi_test.m          |  1 +
 pybis_example.ipynb | 16 +++++++---------
 3 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/OpenBis.m b/OpenBis.m
index 51f0100451c..c1c37e89f2c 100644
--- a/OpenBis.m
+++ b/OpenBis.m
@@ -312,18 +312,27 @@ classdef OpenBis
             experiment = obj.pybis.get_experiment(id);
         end
         
-        function experiment = new_experiment(obj, type, code, project)
+        function exp = new_experiment(obj, type, code, project)
             %new_experiment
             % Create a new experiment of specific type in a defined project
             % Required input arguments:
-            % type ... new experiment type
+            % type ... new experiment type - see: obi.get_experiment_types()
             % code ... new experiment code
-            % project ... project for new experiment ('SPACE/Project')
+            % project ... project for new experiment ('/SPACE/Project')
             % Usage:
-            % experiment = obi.new_experiment('type', 'space', 'Space/Project')
+            % exp = obi.new_experiment('type', 'EXP1234', '/SPACE/Project')
             
-            experiment = obj.pybis.new_experiment(pyargs('type', type, 'code', code, 'project', project));
-            experiment.save();
+            % determine type object
+            t = obj.pybis.get_experiment_type(type);
+            
+            % determine project type
+            p = obj.get_project(project);
+            
+            % instantiate a new experiment object
+            exp = py.pybis.pybis.Experiment(obj.pybis, pyargs('type', t, 'code', code, 'project', p));
+            
+            % save experiment
+            exp.save();
         end
         
         
diff --git a/obi_test.m b/obi_test.m
index b60c1391cf8..9e2afd791dc 100644
--- a/obi_test.m
+++ b/obi_test.m
@@ -41,6 +41,7 @@ projects = obi.get_projects(space_name, project_name);
 assert(any(ismember(projects.identifier, sprintf('/%s/%s', space_name, project_name))), 'Project has not been created');
 
 %% 4. Create experiment for test
+experiment_name = 'TESTING_EXPERIMENT';
 
 
 %% 5. Create dataset with dummy files
diff --git a/pybis_example.ipynb b/pybis_example.ipynb
index 04e58a250de..ddc3b291ca8 100644
--- a/pybis_example.ipynb
+++ b/pybis_example.ipynb
@@ -7,9 +7,7 @@
    "outputs": [],
    "source": [
     "from pybis import Openbis\n",
-    "import getpass\n",
-    "import matplotlib.pyplot as plt\n",
-    "%matplotlib inline"
+    "import getpass"
    ]
   },
   {
@@ -25,7 +23,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "o = Openbis('https://openbis-tst.ethz.ch/openbis:8443', verify_certificates=False)"
+    "o = Openbis('https://127.0.0.1/openbis:8443', verify_certificates=False)"
    ]
   },
   {
@@ -34,7 +32,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "username = 'h'\n",
+    "username = 'hluetcke'\n",
     "pw = getpass.getpass()"
    ]
   },
@@ -280,7 +278,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "experiment = o.new_experiment(type='UNKNOWN', code='EXP123456', project='/SIS_HLUETCKE/DEMO')"
+    "experiment = o.new_experiment(type='UNKNOWN', code='EXP123456789', project='/HLUETCKE/PLAYGROUND')"
    ]
   },
   {
@@ -463,7 +461,7 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python [default]",
+   "display_name": "Python 3",
    "language": "python",
    "name": "python3"
   },
@@ -477,9 +475,9 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.6.7"
+   "version": "3.9.1"
   }
  },
  "nbformat": 4,
- "nbformat_minor": 2
+ "nbformat_minor": 4
 }
-- 
GitLab