예제 #1
0
 def _create_experiment_id_parameter_set(self, experiment, experimentId):
     '''
     Adds ExperimentID field to dataset schema
     '''
     namespace = AtomImportSchemas.get_schema(Schema.EXPERIMENT).namespace
     mgr = ParameterSetManager(parentObject=experiment, schema=namespace)
     mgr.new_param(IngestOptions.PARAM_EXPERIMENT_ID, experimentId)
예제 #2
0
    def test_new_parameterset(self):

        psm = ParameterSetManager(parentObject=self.datafile,
                                  schema="http://localhost/psmtest/df2/")

        self.assertTrue(
            psm.get_schema().namespace == "http://localhost/psmtest/df2/")

        psm.set_param("newparam1", "test3", "New Parameter 1")

        self.assertTrue(psm.get_param("newparam1").string_value == "test3")

        self.assertTrue(
            psm.get_param("newparam1").name.full_name == "New Parameter 1")

        psm.new_param("newparam1", "test4")

        self.assertTrue(len(psm.get_params("newparam1", True)) == 2)

        psm.set_param_list("newparam2", ("a", "b", "c", "d"))

        self.assertTrue(len(psm.get_params("newparam2")) == 4)

        psm.set_params_from_dict({"newparam2": "test5", "newparam3": 3})

        self.assertTrue(psm.get_param("newparam2", True) == "test5")

        # the newparam3 gets created and '3' is set to a string_value
        # since once cannot assume that an initial numeric value
        # will imply continuing numeric type for this new param
        self.assertTrue(psm.get_param("newparam3").string_value == '3')

        psm.delete_params("newparam1")

        self.assertTrue(len(psm.get_params("newparam1", True)) == 0)
예제 #3
0
    def _create_entry_parameter_set(self, dataset, entryId, updated):
        '''
        Creates or updates schema for dataset with populated 'EntryID' and 'Updated' fields
        ''' 
        schema = AtomImportSchemas.get_schema(Schema.DATASET)
        # I'm not sure why mgr.set_param always creates additional parametersets. Anyway
        # we can't use it. --SB.
        try:
            p = DatasetParameter.objects.get(parameterset__dataset=dataset, parameterset__schema=schema,
                                        name__name=IngestOptions.PARAM_ENTRY_ID)
        except DatasetParameter.DoesNotExist:
            
            mgr = ParameterSetManager(parentObject=dataset, schema=schema.namespace)
            mgr.new_param(IngestOptions.PARAM_ENTRY_ID, entryId)
        try:
            p = DatasetParameter.objects.get(parameterset__dataset=dataset, parameterset__schema=schema,
                                        name__name=IngestOptions.PARAM_UPDATED)

            i=iso8601.parse_date(updated)
            l=get_local_time_naive(i)
            p.datetime_value = l
            p.save()
        except DatasetParameter.DoesNotExist:            
            mgr = ParameterSetManager(parentObject=dataset, schema=schema.namespace)
                       
            t = get_local_time_naive(iso8601.parse_date(updated))
            logging.getLogger(__name__).debug("Setting update parameter with datetime %s" % t)  
            mgr.new_param(IngestOptions.PARAM_UPDATED, t)
    def test_tz_naive_date_handling(self):
        """
        Ensure that dates are handling in a timezone-aware way.
        """
        psm = ParameterSetManager(parameterset=self.datafileparameterset)

        psm.new_param("parameter3", str(datetime(1970, 01, 01, 10, 0, 0)))

        expect(psm.get_param("parameter3", True))\
            .to_equal(datetime(1970, 01, 01, 0, 0, 0, tzinfo=pytz.utc))
예제 #5
0
def save_datafile_add_form(schema, parentObject, request):

    psm = ParameterSetManager(schema=schema, parentObject=parentObject)

    for key, value in sorted(request.POST.iteritems()):
        if value:
            stripped_key = key.replace('_s47_', '/')
            stripped_key = stripped_key.rpartition('__')[0]

            psm.new_param(stripped_key, value)
예제 #6
0
def save_datafile_add_form(schema, parentObject, request):

    psm = ParameterSetManager(schema=schema, parentObject=parentObject)

    for key, value in sorted(request.POST.iteritems()):
        if value:
            stripped_key = key.replace("_s47_", "/")
            stripped_key = stripped_key.rpartition("__")[0]

            psm.new_param(stripped_key, value)
예제 #7
0
    def test_tz_aware_date_handling(self):
        """
        Ensure that dates are handling in a timezone-aware way.
        """
        psm = ParameterSetManager(parameterset=self.datafileparameterset)

        psm.new_param("parameter3", '1970-01-01T08:00:00+08:00')

        expect(psm.get_param("parameter3", True))\
            .to_equal(datetime(1970, 01, 01, 0, 0, 0, tzinfo=pytz.utc))
예제 #8
0
def save_datafile_edit_form(parameterset, request):

    psm = ParameterSetManager(parameterset=parameterset)
    psm.delete_all_params()

    for key, value in sorted(request.POST.iteritems()):
        if value:
            stripped_key = key.replace('_s47_', '/')
            stripped_key = stripped_key.rpartition('__')[0]

            psm.new_param(stripped_key, value)
예제 #9
0
def save_datafile_edit_form(parameterset, request):

    psm = ParameterSetManager(parameterset=parameterset)
    psm.delete_all_params()

    for key, value in sorted(request.POST.iteritems()):
        if value:
            stripped_key = key.replace('_s47_', '/')
            stripped_key = stripped_key.rpartition('__')[0]

            psm.new_param(stripped_key, value)
    def test_tz_aware_date_handling(self):
        '''
        Ensure that dates are handling in a timezone-aware way.
        '''
        psm = ParameterSetManager(parameterset=self.datafileparameterset)

        psm.new_param("parameter3",
                      iso8601.parse_date('1970-01-01T08:00:00+08:00'))

        expect(psm.get_param("parameter3", True))\
            .to_equal(datetime(1970,01,01,0,0,0,tzinfo=pytz.utc))
예제 #11
0
    def _get_or_create_publish_parameterset(self, create):
        parameterset = ExperimentParameterSet.objects.filter(
                        schema__namespace=self.schema,
                        experiment__id=self.experiment_id)

        if len(parameterset) == 1:
            psm = ParameterSetManager(parameterset=parameterset[0])
        elif create:
            experiment = Experiment.objects.get(id=self.experiment_id)
            psm = ParameterSetManager(schema=self.schema,
                    parentObject=experiment)
            psm.new_param(self.access_type_key, UNPUBLISHED)
        else:
            psm = None

        return psm
    def test_new_parameterset(self):

        psm = ParameterSetManager(parentObject=self.datafile,
                                  schema="http://localhost/psmtest/df2/")

        self.assertTrue(psm.get_schema().namespace ==
                        "http://localhost/psmtest/df2/")

        psm.set_param("newparam1", "test3", "New Parameter 1")

        self.assertTrue(psm.get_param("newparam1").string_value ==
                        "test3")

        self.assertTrue(psm.get_param("newparam1").name.full_name ==
                        "New Parameter 1")

        psm.new_param("newparam1", "test4")

        self.assertTrue(len(psm.get_params("newparam1", True)) == 2)

        psm.set_param_list("newparam2", ("a", "b", "c", "d"))

        self.assertTrue(len(psm.get_params("newparam2")) == 4)

        psm.set_params_from_dict(
            {"newparam2": "test5", "newparam3": 3})

        self.assertTrue(psm.get_param("newparam2", True) == "test5")

        # the newparam3 gets created and '3' is set to a string_value
        # since once cannot assume that an initial numeric value
        # will imply continuing numeric type for this new param
        self.assertTrue(psm.get_param("newparam3").string_value == '3')

        psm.delete_params("newparam1")

        self.assertTrue(len(psm.get_params("newparam1", True)) == 0)
예제 #13
0
 def _create_experiment_id_parameter_set(self, experiment, experimentId):
     namespace = AtomImportSchemas.get_schema(Schema.EXPERIMENT).namespace
     mgr = ParameterSetManager(parentObject=experiment, schema=namespace)
     mgr.new_param(self.PARAM_EXPERIMENT_ID, experimentId)
예제 #14
0
 def _create_entry_parameter_set(self, dataset, entryId, updated):
     namespace = AtomImportSchemas.get_schema(Schema.DATASET).namespace
     mgr = ParameterSetManager(parentObject=dataset, schema=namespace)
     mgr.new_param(self.PARAM_ENTRY_ID, entryId)
     mgr.new_param(self.PARAM_UPDATED, iso8601.parse_date(updated))
예제 #15
0
 def _create_experiment_id_parameter_set(self, experiment, experimentId):
     namespace = AtomImportSchemas.get_schema(Schema.EXPERIMENT).namespace
     mgr = ParameterSetManager(parentObject=experiment, schema=namespace)
     mgr.new_param(self.PARAM_EXPERIMENT_ID, experimentId)
예제 #16
0
 def _create_entry_parameter_set(self, dataset, entryId, updated):
     namespace = AtomImportSchemas.get_schema(Schema.DATASET).namespace
     mgr = ParameterSetManager(parentObject=dataset, schema=namespace)
     mgr.new_param(self.PARAM_ENTRY_ID, entryId)
     mgr.new_param(self.PARAM_UPDATED, iso8601.parse_date(updated))