d1_test.utilities package¶
Submodules¶
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=24” http://example.com/data/mydata?row%3D24
$ python urlencode.py -d “http://example.com/data/mydata?row%3D24” http://example.com/data/mydata?row=24
$ python urlencode.py -p “http://example.com/data/mydata?row=24” http:%2F%2Fexample.com%2Fdata%2Fmydata%3Frow=24
$ python urlencode.py -d -p “http:%2F%2Fexample.com%2Fdata%2Fmydata%3Frow=24” http://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)¶