d1_test.utilities package

Submodules

d1_test.utilities.catch_multiprocessing_exception module

d1_test.utilities.create_dataone_test_certificate module

d1_test.utilities.create_from_file module

Create an object on a Member Node based on a local file.

d1_test.utilities.create_from_file.main()
d1_test.utilities.create_from_file.gen_sysmeta(pid, f, size, format_id, include_revision_bool, use_v1_bool)

Args:

pid: f: size: format_id: include_revision_bool: use_v1_bool:

d1_test.utilities.generate_sysmeta_for_sciobj module

d1_test.utilities.generate_test_subject_certs module

Create set of test certificates signed by the DataONE Test CA.

d1_test.utilities.generate_test_subject_certs.create_key_pair(key_type, n_bits)

Create a public/private key pair.

Parameters
  • key_type (crypto.TYPE_RSA or crypto.TYPE_DSA) – Key type (RSA or DSA).

  • n_bits (int) – Number of bits to use in the key.

Returns

Public/private key pair.

Return type

PKey

d1_test.utilities.generate_test_subject_certs.create_cert_request(pkey, digest='md5', **name)

Create a certificate request.

Parameters
  • pkey (PKey) – Key to associate with the request.

  • digest (str) – Message-Digest algorithm to use for signing.

  • **name

    Name of the subject of the request.

Returns

Certificate request.

Return type

X509Req

Possible keyword arguments (**name):

C - Country name ST - State or province name L - Locality name O - Organization name OU - Organizational unit name CN - Common name emailAddress - E-mail address

d1_test.utilities.generate_test_subject_certs.create_session_extension(subject, persons, groups)

Create the custom X.509 extension object in which DataONE passes session information.

Parameters

subjects (list) – Subjects to store in session.

Returns

X.509 v3 certificate extension.

Return type

X509Extension

d1_test.utilities.generate_test_subject_certs.create_certificate(req, xxx_todo_changeme, serial, xxx_todo_changeme1, digest='md5')

Generate a certificate given a certificate request.

Parameters
  • req (X509Req) – Certificate reqeust.

  • issuer_cert – Certificate of the issuer.

  • issuer_key – Private key of the issuer.

  • serial (str) – Serial number for certificate.

  • not_before (int) – Timestamp (relative to now) for when the certificate starts being valid.

  • not_after (int) – Timestamp (relative to now) for when the certificate stops being valid.

  • digest (str) – Digest method to use for signing.

Returns

The signed certificate.

Return type

X509

d1_test.utilities.generate_test_subject_certs.main()

d1_test.utilities.list_effective_subjects module

d1_test.utilities.my_subject module

Given a certificate, show the subject in DataONE format and optionally display included subject information such as mapped identities and group memberships.

d1_test.utilities.my_subject.getSubjectFromName(xName)

Given a DN, returns a DataONE subject TODO: This assumes that RDNs are in reverse order…

@param

d1_test.utilities.my_subject.dumpExtensions(x509)
d1_test.utilities.my_subject.getSubjectInfoFromCert(x509)

Retrieve the SubjectInfo xml from the certificate, if present.

d1_test.utilities.my_subject.getSubjectFromCertFile(certFileName)

d1_test.utilities.pem_in_http_header module

Convert PEM formatted certificates to and from HTTP header compatible values.

For debugging certificate processing logic, it is sometimes convenient to pass the certificates via HTTP headers instead of HTTPS.

d1_test.utilities.pem_in_http_header.pem_in_string_to_pem_in_http_header(pem_str)
d1_test.utilities.pem_in_http_header.pem_in_http_header_to_pem_in_string(header_str)

d1_test.utilities.populate_mn module

Populate a Member Node with randomly generated objects.

d1_test.utilities.populate_mn.main()

d1_test.utilities.test_object_generator module

d1_test.utilities.test_object_generator.generate_random_ascii(prefix, num_chars=10)
d1_test.utilities.test_object_generator.generate_science_object_with_sysmeta(pid, num_min_bytes, num_max_bytes, format_id='application/octet-stream', include_revision_bool=False, use_v1_bool=False)

d1_test.utilities.urlencode module

URL encode / decode provided string.

Examples

$ python urlencode.py “http://example.com/data/mydata?row=24http://example.com/data/mydata?row%3D24

$ python urlencode.py -d “http://example.com/data/mydata?row%3D24http://example.com/data/mydata?row=24

$ python urlencode.py -p “http://example.com/data/mydata?row=24http:%2F%2Fexample.com%2Fdata%2Fmydata%3Frow=24

$ python urlencode.py -d -p “http:%2F%2Fexample.com%2Fdata%2Fmydata%3Frow=24http://example.com/data/mydata?row=24

$ python urlencode.py -p “http://example.com/data/mydata?row=24” | python urlencode.py -d -p -s http://example.com/data/mydata?row=24

$ python urlencode.py “ฉันกินกระจกได้” %E0%B8%89%E0%B8%B1%E0%B8%99%E0%B8%81%E0%B8%B4%E0%B8%99%E0%B8%81%E0%B8%A3%E0%B8%B0%E0%B8% 8%E0%B8%81%E0%B9%84%E0%B8%94%E0%B9%89

d1_test.utilities.urlencode.process_input(input, decode=False, path=False)