Exemplo n.º 1
0
 def test_1010(self):
     """Serialization: Checksum -> XML -> Checksum"""
     checksum_obj_in = dataoneTypes.checksum('1' * 32)
     checksum_obj_in.algorithm = 'MD5'
     checksum_xml = checksum_obj_in.toxml('utf-8')
     checksum_obj_out = dataoneTypes.CreateFromDocument(checksum_xml)
     assert checksum_obj_in.value() == checksum_obj_out.value()
     assert checksum_obj_in.algorithm == checksum_obj_out.algorithm
Exemplo n.º 2
0
 def deserialize_and_check(self, doc, shouldfail=False):
     try:
         dataoneTypes.CreateFromDocument(doc)
     except (pyxb.PyXBException, xml.sax.SAXParseException):
         if shouldfail:
             return
         else:
             raise
Exemplo n.º 3
0
 def test_130(self):
   """Serialization: Checksum -> XML -> Checksum.
   """
   checksum_obj_in = dataoneTypes.checksum('1' * 32)
   checksum_obj_in.algorithm = 'MD5'
   checksum_xml = checksum_obj_in.toxml()
   checksum_obj_out = dataoneTypes.CreateFromDocument(checksum_xml)
   self.assertEqual(checksum_obj_in.value(), checksum_obj_out.value())
   self.assertEqual(checksum_obj_in.algorithm, checksum_obj_out.algorithm)
Exemplo n.º 4
0
def deserialize_and_check(doc, shouldfail=False):
    try:
        dataoneTypes.CreateFromDocument(doc)
    except (pyxb.PyXBException, xml.sax.SAXParseException):
        if shouldfail:
            return
        else:
            raise
    if shouldfail:
        raise Exception('Did not receive expected exception')
Exemplo n.º 5
0
 def test_1000(self, filename, raises_pyxb_exc):
     """Deserialize: XML -> Checksum"""
     exp_dict = self.sample.load_json(filename)
     try:
         checksum_pyxb = dataoneTypes.CreateFromDocument(exp_dict['xml'])
     except (pyxb.PyXBException, xml.sax.SAXParseException):
         if not raises_pyxb_exc:
             raise
     else:
         assert checksum_pyxb.algorithm == exp_dict['algorithm']
         assert checksum_pyxb.value() == exp_dict['checksum']
Exemplo n.º 6
0
 def deserialize_checksum_and_check(self, doc, shouldfail=False):
   try:
     obj = dataoneTypes.CreateFromDocument(doc[0])
   except (pyxb.PyXBException, xml.sax.SAXParseException):
     if shouldfail:
       return
     else:
       raise
   else:
     self.assertEqual(obj.algorithm, doc[1])
     self.assertEqual(obj.value(), doc[2])
Exemplo n.º 7
0
 def deserialize_pid_and_check(self, doc, shouldfail=False):
     try:
         obj = dataoneTypes.CreateFromDocument(doc[0])
     except (pyxb.PyXBException, xml.sax.SAXParseException):
         if shouldfail:
             return
         else:
             raise
     if shouldfail:
         raise Exception('Did not receive expected exception')
     self.assertEqual(obj.value(), doc[1])
Exemplo n.º 8
0
    def __init__(self, pid=None, doc=None, sysmeta_xml=None):

        if not pid or not doc or not sysmeta_xml:
            raise ValueError(
                'Either "pid" or science metadata "doc" or "sysmeta_xml" is None.'
            )

        self.doc = doc.encode('utf-8')
        self.sysmeta = d1_types.CreateFromDocument(sysmeta_xml)
        self.pid = pid

        if self.pid != self.sysmeta.identifier.value():
            raise ValueError(
                'PID "{0}" does not match system metadata identifier "{1}".'.
                format(self.pid, self.sysmeta.identifier.value()))
Exemplo n.º 9
0
 def test_1280(self, cn_client_v2):
     """do_meta(): Successful system metadata download"""
     mock_get_system_metadata.add_callback('http://responses/cn')
     cli = d1_cli.impl.cli.CLI()
     cli.do_set('cn-url http://responses/cn')
     with tempfile.NamedTemporaryFile() as tmp_file:
         tmp_file_path = tmp_file.name
     pid_str = 'test_pid_1234'
     cli.do_meta('{} {}'.format(pid_str, tmp_file_path))
     with open(tmp_file_path, 'rb') as f:
         received_sysmeta_pyxb = v2.CreateFromDocument(f.read())
     client = d1_client.cnclient.CoordinatingNodeClient(
         'http://responses/cn')
     expected_sysmeta_pyxb = client.getSystemMetadata(pid_str)
     d1_common.system_metadata.is_equivalent_pyxb(received_sysmeta_pyxb,
                                                  expected_sysmeta_pyxb)
Exemplo n.º 10
0
def getObjectFormatFromID(fmtid, default='application/octet-stream'):
    """Returns an ObjectFormat instance given a format id
  """
    formatlistURL = (
        'https://repository.dataone.org/software/cicore/trunk/d1_common_java/src/'
        'main/resources/org/dataone/service/resources/config/v1/objectFormatList.xml'
    )
    doc = urllib2.urlopen(formatlistURL).read().decode('utf-8')
    formats = dataoneTypes.CreateFromDocument(doc)
    for format in formats.objectFormat:
        if format.formatId == fmtid:
            logging.info("Found format for %s" % fmtid)
            return format
    for format in formats:
        if format.formatId == default:
            return format
    return None
Exemplo n.º 11
0
 def test_1300(self, cn_client_v2):
     """do_log(): Successful object listing"""
     mock_get_log_records.add_callback('http://responses/cn')
     cli = d1_cli.impl.cli.CLI()
     cli.do_set('mn-url http://responses/cn')
     with tempfile.NamedTemporaryFile() as tmp_file:
         tmp_file_path = tmp_file.name
     cli.do_log(tmp_file_path)
     with open(tmp_file_path, 'rb') as f:
         received_event_log_pyxb = v2.CreateFromDocument(f.read())
     client = d1_client.mnclient.MemberNodeClient('http://responses/cn')
     expected_event_log_pyxb = client.getLogRecords()
     now = datetime.datetime.utcnow()
     for log_entry in received_event_log_pyxb.logEntry:
         log_entry.dateLogged = now
     for log_entry in expected_event_log_pyxb.logEntry:
         log_entry.dateLogged = now
     assert d1_common.xml. \
       are_equal_pyxb(received_event_log_pyxb, expected_event_log_pyxb)