App-MtAws
view release on metacpan or search on metacpan
* Some refactoring
### 2012-11-15: v0.73 beta
* Sign request right before sending to network. Fixing the following 1) when request is retried due to 408/500 error,
we resign it, thus timestamp won't expire 2) put all heavy operations like SHA calculation before signature/timestamp
calculation
* Some legacy code removed
### 2012-10-24: v0.72 beta
* Some effort to manage mtglacier version information, print version each run. Report version in HTTP
UserAgent string.
* Show some progress when reading large local directory listings
* Retry with throttling 408/500 HTTP requests. 408 can mean timeout/bad bandwidth. 500 means Amazon not ready yet.
* Some old unused code removed
lib/App/MtAws/DateTime.pm view on Meta::CPAN
$cnt;
}
}
# allowed range Y1000 - Y9999
# should work with Y2038 dates if underlying OS supports 64bit time (otherwise we don't need such conversion in
# mt-aws-glacier)
sub epoch_to_iso8601
{
my ($time) = @_;
return if $time < -30610224000 || $time > 253402300799;
strftime("%Y%m%dT%H%M%SZ", gmtime($time));
}
our %_year_month_shift;
# allowed range Y1000 - Y9999
# should work with Y2038 dates always
sub iso8601_to_epoch
{
my ($str) = @_;
t/integration/datetime.t view on Meta::CPAN
['20121225T100000Z', 1356429600],
['20130101T000000Z', 1356998400],
['20120229T000000Z', 1330473600],
['20130228T000000Z', 1362009600],
['20130228T235959Z', 1362095999],
['20120630T235959Z', 1341100799], # leap second
['20120701T000000Z', 1341100800], # after leap second
['20081231T235959Z', 1230767999], # before leap second
#['20081231T235960Z', 1230768000], # leap second is broken
['20090101T000000Z', 1230768000], # after leap second
['19070809T082454Z', -1969112106], # negative value
['19070809T084134Z', -1969111106], # negative value
['19700101T000000Z', 0],
) {
my $result = iso8601_to_epoch($_->[0]);
ok($result == $_->[1], 'should parse iso8601');
my $dt = DateTime->from_epoch( epoch => $_->[1] );
my $dt_8601 = sprintf("%04d%02d%02dT%02d%02d%02dZ", $dt->year, $dt->month, $dt->day, $dt->hour, $dt->min, $dt->sec);
ok( $_->[0] eq $dt_8601, "iso8601 $dt_8601 should be correct string");
}
t/integration/t_treehash.t view on Meta::CPAN
1198 => '2b1b6d1c4d63c3b4f8b3e7927310729286b24df58e651151a1d1a5f8d9cd04b7',
1199 => '7d20bff6970954708c86a076d0900ee15d1d557a58adf633c010a612dcc33dc7',
1200 => '67585675f7f89ccffef75726fa5c82e2e1d38135bea1daec776b63bc6b7a141f',
1201 => '39e0e60f308c0cfbce9ac821f576d194498774193379a5cfbe4fe5b96d30c7d2',
1202 => 'beb06349a3ebc2ba0d258dcb5bc69bed8228c206fd2f8dea9da9001a786f8533',
1203 => '4e9a6f07399fde248625028ed22c99e23c815840fa1e3e35d47bc6159675db75',
1397 => '3c5e4b6b12db9b5a968eb1c61a64e4e17ab5d57893f6c2bbc863fe9902c27960',
1398 => 'b9af896019891b7a4b7ef8ffe09e43b13cd3d0061977f50d78d1733f84ba4035',
1399 => '6e98972776e6d73f369a9f3dcf291e5f00475fd314bd7716053ec78ad2d359ec',
1400 => '095c549ab9820d9274cc19a4de02b84f429dc40277370d2322b49e1df02b5c22',
1401 => 'b52b57e5ad6f26569573799ddb7d947ba7989f9176708247e9a8dcc6f0538c6f',
1402 => 'afaf5cedd3c2f62c515b934f0e3d3b79d4042b23af1ee55bf43cdd9c5c420514',
1403 => 'e558f20315de9c2cf18a3cea5a7a103683b35686b1258592e321cf509e1ae7ab',
1597 => '3fb46d9025c0f1ead671a861bd379c7eac8413da3c6de417a9f1fe5a1fefbff5',
1598 => 'a1b8534253818d310b68d67e9463b996e874852db12b3005ecaa6cfdc9046927',
1599 => '04a74217f46e6866a1aac384f955ee12853efdb41c7c0c29c5853350ca1e4320',
1600 => '4e327a4c4c83d2434ac4e07031ce2517172fdf32fa79216762a7739f76026dec',
1601 => 'b9b17014b3dac5353c6fec21553af50e9c5ab80138a29eb0719098fa98a153dc',
1602 => '3d5d6ae53c70607d8dc8ec5e5f943350e8597d69ccba1ff63364733f546cfcef',
1603 => '93fecabe17156dba2e171431a9c0de0e5cff9de90ef69ec45695ea1b8ed26c64',
1797 => 'd8767ae1505726367f8a5faa75a78c849c057e5e2ca7e0c8354eaf4e0f8db7f7',
t/integration/t_treehash.t view on Meta::CPAN
1802 => 'a4b461674f529d9c1c548030b07d964f0c448f33e33996a284f09acd84f23d71',
1803 => 'f80e80f02b7f6f80127f7a0342d6d593efb147588e5962314b6e87a559275883',
1997 => '8faf3594dc34a13048804acb2a75158d209f630e285fcc0f1c7842bb4a744525',
1998 => '2506bceda7a3ed9eac719f07d701bc2b0191301e837f1b00a64a3066093e4d75',
1999 => 'fb9b1c3a66a48cb417523c4699b81064e9344b8cd2c49a80ee697bb3983ab16d',
2000 => '4300c46812e8777ba0015ffb330b64bbb77fa8988f6928d1ba80c20d1f75a636',
2001 => 'd8f8117d7a0292a4ac1fd4df44f6faf5ec7c5fc3b79f90b8445f227613e31e8f',
2002 => 'f3fe5196eed75079dfce34cbe5a615ab5c55a2d2c31d671955848b971208f12a',
2003 => '243d077c73ab751673882bf13303e7e09e36578a3f1655860bc886aba9f532a1',
2197 => '04ab5ebbec9dc382aecf1ab076e865773a5fc8a6dd0ee461e827f84b7efb52ea',
2198 => 'c8d57265febaf9b5119a65a5ceffd7c4c304d96a665e2ddf9a6f4d80e24f67d2',
2199 => 'e199624198a4d95ca890779831e070244d8efc180cea16fc92c3631bb83e1a81',
2200 => 'f9691c9ecdef9b7f7415f9353dcb7fb27a0a7bcffc460962cc5f01929424b649',
2201 => 'ab161bdc4d69b2c15c0c6d3891791da298f8dedf3c831cb7f7f93ef5755a6a28',
2202 => 'e5d2a5116b4651abc1761b785c24d2b929320bf1d8fa0ccb7e6a822130f264ad',
2203 => '8a649f82c3bb7bf81b030cd2b960eb2f14693d931475a7f8b25fbd6d593d4d25',
2397 => 'd5e9969283130135b46ec9251a6c286028dc31b19bbd85fb137cffc0c95bd909',
2398 => '4853d629a52dc8331df98ce187dd5119f06854769cac4e8f319c8034d9962b6a',
2399 => 'd8d64173960f5fdacb7a140502eea8317bcae3314ccecf913cafbc6e8425a4ef',
2400 => '4ae05bc74a8ff142d5096961d70353df2296d2898d77fcb499499b9c1f9973cb',
2401 => 'ad78b09bd2f663f97764bc3f252a0e261a28b7e2af25c4e7e247c80eb0f62c51',
2402 => '18a8b6a173abaf92fd74ded060a60333c0929e051723910202bb0d0b833fc025',
2403 => '11ba4e42d31d520b196732008a27ebcda3f80ae00f2ad8df407e36153cc72307',
2597 => '3f09d017e7d25ad33f596c1e64f6fe5da21f846374ae011faacf94bbf44dab59',
2598 => '149d66fd073ccdf6558c96a58eb9e9ed7d25bacc0d9d5cf38792a85576c5c74a',
2599 => 'ac4cb6fb830c7649f0df3eeb48334aed0f034b46d9e9b73c04ec9f1ac140c2f5',
2600 => '88482a2553e6c07dcacfcf42d6b0c5fe6c566c2e414a70c705cb90dd47497c65',
2601 => 'dcefaeae57109e4444334a9c6c4cd3f9c0c24ab11ae2e6508a80d23a6fa2a711',
2602 => '4cf917882f8d9c44db7415cd51e043a1723499549e623e1ecdc1b32a9a631223',
2603 => '0eeae3e65711bdbab7a621d5efc147f155faabee95e777cd8dd91eb2c1c0aa35',
2797 => '624d856053339be1c189bcc4569e28ddd2320353ed742e80933daf0279d67eef',
2798 => '829693a9f3c28476e904acb9740f7ff9d282480ca039f812d8dc8cb1b409d170',
2799 => '177e773fccc43db905310b4f9a62f82f8b72ebdfac1b7a9fce39ceaf3ad4a732',
2800 => '5d30fc3607654fbfa46766b3709173dc71b57cf2c7e8a676d4c3fec4550e7a24',
2801 => '593988a1590402b3a9b49a64728fbc6ea0c9fa7dfe952cadb78ed0c67d1cae44',
2802 => 'dca7bce81f0d25ab77fa6ea64a34babd27378991f7ddf1c1aed28d36614e932d',
2803 => '5ed4ad83166957cf4e825d18ebd0b4879c83948ff24ded471e8bf8fd7c36c7c6',
2997 => '657b339d7603f3c4bbd41d5c9a932acd211214c3954888180591a35003a7d85f',
t/integration/t_treehash.t view on Meta::CPAN
3202 => '0bcf1f6b92b86701ef1ca7f1d067a6527cf1f91427d357f9060c9f5b064e8b7f',
3203 => '1042c79951a3dd7f38c33d639dfacff0142597750bb500c4ec35620032d0445f',
3397 => 'a480dd041afd3615793fe67d34e4fc7ca34fe74e2d62dce15f0a463dcddfaa8b',
3398 => '0e5d1a7c18277e729412b79e840f8f4aea5870202775c388ba99c4ea5130c93a',
3399 => '38a8eedb8de4e4e4ef723a9235de455459ac41f225d395048c95c84c5510cec0',
3400 => 'b4a72d7865a44213ea3986c7050574861fc5923f484d36c0d0976fd19f15c5a4',
3401 => '4f4643c0db4d86e1f71c35455f17b0dca0949780ac4a3cb53b7019f1b0b9a474',
3402 => '18080f640d085adf89badb4a99b5c662b27d8433e571e356be4cbc096343876c',
3403 => '876c3072e80bd4984224762237c0d53cc7e888244b2eb31a207285f814125ec6',
3597 => 'e58454f85152edd7c732a382686db2235a24c827b18e61c27a0fc58023a5d948',
3598 => 'c1728ea2e441a2aa1efe1aa8c14e98f081830924aa75c5f219d09842004941a8',
3599 => '84fe77522ad451e5b74072dcd7adaa6de89fa4e2b3ef4b32def26a33c3d2f34b',
3600 => 'e52cba460fe6ef39d9d8dd062b695f7ecd680f0191ba95a085467754b54f72df',
3601 => 'cb096895ae535a121e3cc06d3004603dea5df5b8dd11693ad114469667540ce0',
3602 => '087bffbf27472134c732ed20b119467fb66bfea773145d1f5dfd2922bfb08052',
3603 => 'eacbf02eff7a0b19077db5e4355e1a3195912f404e121e98cd7de6b0d3416fce',
3797 => 'f7153a3c9f0eb16a6b3c9686a419a2ecc53274f6521f9859c4f604022899ae13',
3798 => '687dfe53261200ac7f1a1d3a7dec43f216c8a5f498fd3e14b76ec439ae836876',
3799 => '6a5fb86c0e9b35a71ae918d22a704bd3b47aa6874cc3d196eb6fe7a96d434d98',
3800 => 'd2344b6cf23c4573deec6e68e9dd08d11aaa2f6a63c9d94bfe62636f04df858a',
3801 => '68f247e2136b2ed8a6aa1499267faad8eb750ab4c071f11b93448e0903d468e7',
3802 => '3d15265c8ce15e71b795563c23e7ab4b52ef8fb908b8074a87c411ad42f2ac2f',
3803 => 'f6963d716ba90217c0d75541e4a80a3d55d3261e82137341d5b6e0a24ee519d8',
3997 => 'ef4c047f01caf25b42515a743be41c3281e8fe146feb2d7d94db9c054f55583a',
3998 => 'e367187f72f7371e90c2eb0119829ab43feac209003696a088091d1d5cc0e5ea',
3999 => 'f8e3781db1cd0711cfdf1ccb365f986342ad44e2c112c3d842b63c962d5d661f',
4000 => '96c0a862f1db0ba771b4dd87955aee731c6cfeee70a115f424a2725a17826fb5',
4001 => 'b18d0d075a276831e1166a3b87cd15e576c3ab6183036fa9d085d2a77df64468',
4002 => '9c6906bfe0b23d890d6a41779bd62db6939572bd3b3004503f29eece0221030a',
4003 => '5881ad70090129f049a53a0b1aa5cd8132d440f0281a1ab8bcb171d9c9365d2c',
4197 => '464e47f8663007a69fa3321108fa89f70ff83f904cb5c6ca3d11bf2148f096db',
4198 => '8d15393c1a641ad1cab3855ed8c67e2c8d6b2bf83bf091f84a9ff770d3223281',
4199 => '8d2f2fd547f4bda004db04df1f8115351ff33241553bb11f68a71ecdce9bf926',
4200 => '6dff3b962746794b84b94cc5bdd2f577add79c5362eff19f21b90a2f81d79226',
4201 => 'aaabde3e8b13460cb2593b867cfc88d6bbc5ffe41e942c126a18dc52e1c84514',
4202 => 'ea0d2f314b423b289eec1efb5f92d6862d5d31c08e2e888a897931bff1ed66de',
4203 => '9fa363ce23de286e9f2b1e47421a8c70d3a27904f75ac20da7bc9a1c5590e0e4',
4397 => '49d2dff47772b65690c75552fd8d98746ba27d8c2c1e88e6cb06050ff9563d86',
4398 => '81d18a721853871ffbc438ad5610c9c5ceee595f3c3eb8ad67afb51116e3d54a',
4399 => 'd2d2c6640d67131d01e397b5b7729c932eb1d5534e9b45dd7ad6bcdc3427c9b3',
4400 => 'a14433f2191ac12ab52897ca3ee3a2a65c2599a46a1175ec510a0ca4e6412c09',
4401 => 'a4b8fcc06dffa061f8d55b9e4a8a42b30ca2d3a2d1c24ed4f1008bbc272a3588',
4402 => 'd1d1a2a6159a89163d22ea02608aec2680761e7a19b500e5a1889637bda0207f',
4403 => 'd88e94b335391b6580024dc6b817125755553f4d21717298c92d1e0becf4478e',
4597 => 'c0c1e1ed58938debfe69ecaefc8a0e9530f1a954901ce97d0f23fc8dea61035a',
4598 => 'd2d7b494329b7a81f743fc5ece7dc31a33f5ecf9dfc954c78c952dd815aac858',
4599 => '9d6af2f3560629ffd926c055d6addd8ce966e635d5ae702d6853506a26091801',
4600 => '2bfce615133389a728ce34ff80c69e662bbf8464995529ea847cbd02af186692',
4601 => '4f084623ee5204e56d0809daa486de92863554cf7d1089c65573bf4c469aee58',
4602 => '3151d3d8333d0dee1575c34ec8cd7e4f7743f335b1937ff0ce16d5daa0597bfe',
4603 => '7ba42415c4c050488f96275acd78d93d64e9a83bff694507d9440eb3b22b7b94',
4797 => '12d0f5241139640d83de13daa31e41fc5ef55cde05fd0db0c266a3e1ebc3e6e1',
4798 => '212192a08b9c74c94ea112d72a862989ffbee2800d295e0b1350b5a8e29b092d',
4799 => 'af6d8a26812fcadff344766ae8cf3e5d3aa52263bddc3a79163eeae323f037cb',
t/integration/t_treehash.t view on Meta::CPAN
11534336 => '3b614b23a4322c125eedcf1d552ff48932825a827c96bf4bb6b726038e8105b9',
11534337 => '29e39b1ecc5bc008d2f4298abbf3d77cc652fe8f4c73495f7b65ce66171cc461',
11534338 => '50b29223d7075c6a385f4a6b7ab42b6818585e35d3bcf7d02a28fcb391658ee7',
11534339 => '932372d0ebdeeaade51190bc3a67633a5dfc34b2266139523e26dd41671b2e86',
12582909 => '0fa602801efc88cd729f192ab7968140287f3b64ed2bab05c99f86b64a5da659',
12582910 => '556bec52032ed5d860a7d7c1c95e50fb15f5f818e8583ac4109555121ea44cdb',
12582911 => '963466ef69e5f6b31268d583016fb11649145cc1e83a85c01c839f5fe3ba4a90',
12582912 => '23d6622324f74eac2d370860d3a996ae37400d65351216c84aa228c2d8203afa',
12582913 => '84dbaeaa4ad7fa993fe6b6ea195a920e34fdb0f1a844748ecf0488b74460779f',
12582914 => '78d8c46488bd1841724478b03f11af15b3c8b3c30f4bf4449a685e7cabfddd83',
12582915 => '455207a7554c5a1ee0424b342402859722e1480b1ebe233003aaa46ec0d69001',
13631485 => 'fdd5935ea10ab0ee641d384a260d04532751c735a5fa1edd9b82df28b13f734a',
13631486 => 'd078807ff5fdbda76c0fb3ee1aaec191bd97bc7b3526b200bedcdac1d68d5f1a',
13631487 => 'dc092eba291d84d7a8a2dedc79c09243274c9c87c6c1d9776d5785cda95fb845',
13631488 => 'a823aa50f504032dd79a5b64b78cc1aa89021eb13ef37dbefb49a94ca60283d4',
13631489 => 'ef5e59fa3a6c1f1ceded5ce4427d5a9d33fff8c4728505dc9e12d848fe0e4e5b',
13631490 => 'd86789d628fdec284356e4600d0f7030ec7ece12ae31bea46e0b31d7b64635a5',
13631491 => '906a4dd7eb3d026180c3a0ae716c4a382c2bca28719d2555e129e09790b54e6c',
14680061 => '473815b35e63a84df44a4895da0bf07ddcb5335e80bda1287db9cfb87503e1e5',
14680062 => 'd19f0ca48983c179357b500731b9383a92e44995128f725c7911a7a2e2ede691',
14680063 => 'cfe1fc46394b951d57a8aebc8642f51f582395ab39cd74a74aa9d852b9fcbbac',
14680064 => '014376a3ce5b21362540385cc08b5021773fcaf287386c6494368884978a15f1',
14680065 => '661587c006bb020995fff67aca5ebabf8fa3dd89937b832bc967c9b773fd9805',
14680066 => '4af96b4c6f3903989f4902fb7a66a97e6a47d879fa9b5713d7f28d6bcadf123a',
14680067 => '9f6144531788457940d91af47f6b61242c9e6d0369635640bb2908eee185d9d3',
15728637 => '75bba0c737eced396bab2150afb86983c5f3c9e70012e86678cecaa6d38bf7da',
15728638 => 'aeb8bd66201078676dda804dbf55c2b4ced53a4361966bf418bde6ee76711261',
15728639 => 'e734d2d7e75f34c058af3a20ab31557cb44b3a6932c9bb1e0f78a285c29fdae8',
15728640 => '91892db7cc3d41b3c82019778f21788df7a4be38a4af8973ecd54d8251c2092d',
15728641 => '98fde9ab7a6c7fd0bc68d99c7e7a30ee937b5beb84ca16bfedac71a805a1cb4f',
15728642 => '90f08c767eee06efdd1959953d47cf25c4d8806de1ce22fdf1294527b9e151c1',
15728643 => '95a353e4a50aae3c5bddb15a39a226e639eaf380933ef119b8d9d2cdba4c41fe',
16777213 => '0734b6f45e0b0adbd8083a88c555b856457f11b265a5e45fc0f02244d2115897',
16777214 => '43d8513e45f69e45a95a91ded26cf4745b0fd7231b869cc17875b986345f03e6',
16777215 => 'd1a9bbf07e3c9d563d2b786f56415351e2b7199bb1b6e4a436df392837fbc59a',
16777216 => '5e1fcd33cdaa0635d30b62f380a6857d32b999cbb4250706f0df20c5a2bcb037',
16777217 => 'c0190998eb02db84a9d772a644b8d60c572092fd548a1ab716a61a65d9f57cbd',
16777218 => 'e9a3431d518f382b78892ea40657049ffea24f7b71f3826cd012386982c67cf1',
16777219 => 'd63f0cf828e44059b17c3316e3cfb20a295fd5a47c85cce3a7b92f3411f29954',
17825789 => 'fd81aa423300c13eb7a3e3dc5560e5f19c926554ec604f94a5000cad3b718811',
17825790 => '8189fce53dc1cd7628282ea4e869357cacde040b872c1d228d60e0be1b7986b3',
17825791 => '2c843ba8eee54a67ab0b9f27eaf34360772c8361a4ebf6dc1799a15254b90d39',
17825792 => '4f53d1a319f50bd7169745c5425536cecb5b225fa20ba9384ea76c6a1ba8b450',
t/integration/t_treehash.t view on Meta::CPAN
24117250 => '88b510b4cb4cf806bd66458ac14f6850588955eaee2bfa8f46c5a784ecab693c',
24117251 => 'b600cc1a6edb66d5a268c0e99e428e198324bc83a5fbd6c757aab9b266557cb3',
25165821 => '97ff659d8f7fe278c7e6c0c12d36082a84ceedff43dfbe2a18094064ecd49cd2',
25165822 => '77fc3efc5d69f3874375f9d297c824b23510d5fb407f06e51ad230f77872fef6',
25165823 => '86778551f7f219325afcf20e568d7f305be08584bb68cf68ee8b556e0caf4b87',
25165824 => '57113c20beb68687613d20d2af05eb916978f585b536b92f895f67076bbc5a9d',
25165825 => '7958d827240d8ac4eebce066d89c6e37a7bae11e9cdb24fdf3a399754508dd88',
25165826 => 'ad8875ac4c4a54f971ffb49401186b8d00603ce0e4f8ff9d3afc94eb9dba3b69',
25165827 => '1f3ae5e0f7ecd3d72239db5041198f50aa2d045f051e90296f47da2e1562a289',
26214397 => '3485ec60e10f82b9f1032b036106d60e8fb7a6bc29790abf0bb626e07885e2ae',
26214398 => '73033890e2fff9367a0698c0923c9909f0324e8f4769783abe7053067f8dc56d',
26214399 => '9767e65535db42f948be9f5e7bd91516dcd85c97d562de2d63b5284ee583019e',
26214400 => '33e3c5742db75c1ec8cfbc43b8c9616002524ad323454e69de9a48413cac1600',
26214401 => '7b0aeea967dd471258fc3b38127567226edc770b790bdbb87800d5080820ca6c',
26214402 => '91e13f6e2eaef4f58d9b4bfdecbc92df9c260097542bfbec7cd5c58f241bef4e',
26214403 => 'df144ef77195788a9ab4f657d352499fc875c4b9b9f99c5bbec0bf6a81c25efd',
27262973 => '9dcfbd1295abf78903bb8a6cba73615ad884a277904684a05e6d0e6c4749f529',
27262974 => '6c65adee7914328e957cab6e6583fd9568e5a37c732e95ad4a99d4c928991dac',
27262975 => 'cb169a67054740016a698fec05c36f2022ade2f03492eaebe3d1accac603da2d',
27262976 => '7a81eb70bbb3e048019e55d01bde15e24b90b920ac806a3f033be71d01b4f012',
27262977 => 'f084ceeb627fdf8199e0a89f033cdeeb15f7a79143946891495419d4c384e502',
27262978 => '4d44ad62bd033c34a87208313d67e4f4f2a85ff85b977d910a6458e98cd2e02e',
27262979 => '125f14e69dabfc0c929db511da0cf60ce0719bde7c5c59e3acef51df71d3acdf',
28311549 => '20c0fac028a6a5784d8b524fc217608c5f553189a57b5d2e3183f00bc236a836',
28311550 => 'fa2fbf483372a330f79a6907b8d31d67e0942bb63a378d31d022d32d25950adf',
28311551 => 'fcc5dbcdd56afa81ee563fd8b1f1a0ba669b704c23e0b1ff2f900e84721d1934',
28311552 => 'd6b139b01a1b062032499af596602476089ced25b58be72ba722cbcd3c15b9e2',
28311553 => '1945ab35c4d1a16de395de3669d8db5a7232e3fa8e4685274d632857b07eaa37',
28311554 => '5d863d1433049687fd588a1f755959ce30ed3cf817b9b034aca6774d4695a3bf',
28311555 => '12de150d5321fd51b6363d04b36e49d992c82d4726ffa77ff07841a03a1530e8',
29360125 => '6891573c15a4de182c8e8a66a632e5908392ea80a4c3192d44838d73b67b547b',
29360126 => 'e71eccccbea9e1bbdfbcfd6b97252442cbea3dab8dc49ce9e82474a1e52a1252',
29360127 => '8ed666fb2b40877c14c6cb9508de8ad1acd978c3ee24d98d4f3a006e002a9b7a',
29360128 => 'f3dd1a912582cfc21faa45075f17400860b754e6274cf9802e989d074a188484',
29360129 => 'c4176b52fa465398a810097d55932e32d9ef72f79a53b1b7bbda0cdf30ad3361',
29360130 => '7b6ab5364d121a4d52c8124e6fa46ad9a492f5748e530570fb5ad49877ec7990',
29360131 => 'e3b4605c3f2b9e81adfeead96770f1f539d12281d2705d95a700de38d930babb',
t/unit/config_engine_new.t view on Meta::CPAN
it "should work with two params" => sub {
ok error_to_message("%a% and %b%", a => 1, b => 2) eq "1 and 2";
};
it "should work with option" => sub {
ok error_to_message("%a% and %option b%", a => 'x', b => 'y') eq 'x and "--y"';
ok error_to_message("%option a% and %option b%", a => 'x', b => 'y') eq '"--x" and "--y"';
ok error_to_message("%option a% and %b%", a => 'x', b => 'y') eq '"--x" and y';
};
it "should work with sprintf formats" => sub {
ok error_to_message("%a% and %04d b%", a => 'x', b => 10) eq 'x and 0010';
ok error_to_message("%04d a% and %06d b%", a => '42', b => '24') eq '0042 and 000024';
ok error_to_message("%04d a% and %b%", a => 42, b => 'y') eq '0042 and y';
};
it "should work with alpa, numbers and underscore" => sub {
ok error_to_message("%a_42% is mandatory", a_42 => 'abc') eq "abc is mandatory";
ok error_to_message("%option a_42% is mandatory", a_42 => 'abc') eq '"--abc" is mandatory';
ok error_to_message("%option a_42% is mandatory", a_42 => 'abc') eq '"--abc" is mandatory';
};
it "should confess is variable missing" => sub {
ok ! defined eval { error_to_message("%a% is mandatory", b => 'abc'); 1 };
ok ! defined eval { error_to_message("%option a% is mandatory", b => 'abc'); 1 };
( run in 0.481 second using v1.01-cache-2.11-cpan-7add2cbd662 )