| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 | 2 |
| 3 """Tests for gs_utils.py. | 3 """Tests for gs_utils.py. |
| 4 | 4 |
| 5 TODO(epoger): How should we exercise these self-tests? See http://skbug.com/2751 | 5 TODO(epoger): How should we exercise these self-tests? See http://skbug.com/2751 |
| 6 """ | 6 """ |
| 7 | 7 |
| 8 # System-level imports. | 8 # System-level imports. |
| 9 import os | 9 import os |
| 10 import posixpath | 10 import posixpath |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 into gs://%s? | 32 into gs://%s? |
| 33 """ % TEST_BUCKET | 33 """ % TEST_BUCKET |
| 34 raise | 34 raise |
| 35 | 35 |
| 36 | 36 |
| 37 def _get_unique_posix_dir(): | 37 def _get_unique_posix_dir(): |
| 38 """Returns a unique directory name suitable for use in Google Storage.""" | 38 """Returns a unique directory name suitable for use in Google Storage.""" |
| 39 return 'gs_utils_manualtest/%d' % random.randint(0, sys.maxint) | 39 return 'gs_utils_manualtest/%d' % random.randint(0, sys.maxint) |
| 40 | 40 |
| 41 | 41 |
| 42 def _test_static_methods(): |
| 43 """Test all static methods.""" |
| 44 gs = gs_utils.GSUtils |
| 45 |
| 46 # (input url, output bucket, output path) for each test case |
| 47 testcases = [ |
| 48 (None, None, None), |
| 49 (5, None, None), |
| 50 ('', None, None), |
| 51 ('/one/two', None, None), |
| 52 ('http://one/two', None, None), |
| 53 ('gs:', None, None), |
| 54 ('gs://', None, None), |
| 55 ('gs:///', None, None), |
| 56 ('gs://???', None, None), |
| 57 ('gs:///bucket', None, None), |
| 58 ('gs://bucket', 'bucket', ''), |
| 59 ('GS://bucket/', 'bucket', ''), |
| 60 ('gs://bucket//', 'bucket', ''), |
| 61 ('gs://bucket/path1', 'bucket', 'path1'), |
| 62 ('gs://bucket/path1/path2', 'bucket', 'path1/path2'), |
| 63 ('gs://bucket/path1/path2/', 'bucket', 'path1/path2'), |
| 64 ('gs://bucket///path1/path2///', 'bucket', 'path1/path2'), |
| 65 ('gs://bucket///path1//path2///', 'bucket', 'path1//path2'), |
| 66 ] |
| 67 for (url, bucket, path) in testcases: |
| 68 is_legal_url = (bucket != None) |
| 69 assert gs.is_gs_url(url) == is_legal_url, 'gs.is_gs_url("%s") == %s' % ( |
| 70 url, is_legal_url) |
| 71 if is_legal_url: |
| 72 assert gs.split_gs_url(url) == (bucket, path), ( |
| 73 'gs.split_gs_url("%s") == ("%s", "%s")' % (url, bucket, path)) |
| 74 |
| 75 |
| 42 def _test_public_read(): | 76 def _test_public_read(): |
| 43 """Make sure we can read from public files without .boto file credentials.""" | 77 """Make sure we can read from public files without .boto file credentials.""" |
| 44 gs = gs_utils.GSUtils() | 78 gs = gs_utils.GSUtils() |
| 45 gs.list_bucket_contents(bucket=TEST_BUCKET, subdir=None) | 79 gs.list_bucket_contents(bucket=TEST_BUCKET, subdir=None) |
| 46 | 80 |
| 47 | 81 |
| 48 def _test_upload_if_one_file(): | 82 def _test_upload_if_one_file(): |
| 49 """Test upload_if param within upload_file().""" | 83 """Test upload_if param within upload_file().""" |
| 50 gs = _get_authenticated_gs_handle() | 84 gs = _get_authenticated_gs_handle() |
| 51 filename = 'filename' | 85 filename = 'filename' |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 assert file_contents == 'contents of %s\n' % filename, ( | 382 assert file_contents == 'contents of %s\n' % filename, ( |
| 349 '%s == "contents of %s\n"' % (file_contents, filename)) | 383 '%s == "contents of %s\n"' % (file_contents, filename)) |
| 350 finally: | 384 finally: |
| 351 shutil.rmtree(local_dest_dir) | 385 shutil.rmtree(local_dest_dir) |
| 352 for filename in filenames: | 386 for filename in filenames: |
| 353 gs.delete_file(bucket=TEST_BUCKET, | 387 gs.delete_file(bucket=TEST_BUCKET, |
| 354 path=posixpath.join(remote_dir, subdir, filename)) | 388 path=posixpath.join(remote_dir, subdir, filename)) |
| 355 | 389 |
| 356 | 390 |
| 357 if __name__ == '__main__': | 391 if __name__ == '__main__': |
| 392 _test_static_methods() |
| 358 _test_upload_if_multiple_files() | 393 _test_upload_if_multiple_files() |
| 359 _test_upload_if_one_file() | 394 _test_upload_if_one_file() |
| 360 _test_public_read() | 395 _test_public_read() |
| 361 _test_authenticated_round_trip() | 396 _test_authenticated_round_trip() |
| 362 _test_dir_upload_and_download() | 397 _test_dir_upload_and_download() |
| 363 # TODO(epoger): Add _test_unauthenticated_access() to make sure we raise | 398 # TODO(epoger): Add _test_unauthenticated_access() to make sure we raise |
| 364 # an exception when we try to access without needed credentials. | 399 # an exception when we try to access without needed credentials. |
| OLD | NEW |