sub mkbasepath {
my ($self,$path,$opts) = @_;
+ cluck "ERROR: mkbasepath called without opts, so user is root!" unless $opts;
+ if ( $ENV{DEBUG} ) {
+ warn "# mkbasepath $path ",dump($opts);
+ $opts->{verbose} ||= 1;
+ }
$path =~ s{/[^/]+$}{};
- make_path $path unless -d $path;
+ if ( ! -d $path ) {
+ make_path $path, $opts;
+ }
}
sub user_dir {
use strict;
use warnings;
-use Test::More tests => 26;
+use Test::More tests => 29;
use Data::Dump qw(dump);
+use File::Path;
use lib 'lib';
ok my $o = CloudStore::API->new('s1'), 'new';
+die 'You need to run this test as root' unless $> == 0;
+
cmp_ok $o->create_user('md5@example.com','md5sum',0), 'eq', 'u2000', 'create_user md5';
ok my $info = $o->user_info( 'md5' ), 'user_info';
ok $o->delete( $uid, 'bar.txt' );
usage $uid;
+my $path = "/tmp/test.$$/base/dir/path";
+ok $o->mkbasepath( $path, { uid => $info->{uid} } ), "mkbasepath $path";
+
+ok ! $o->mkbasepath( $path, { uid => $info->{uid} } ), "exists $path";
+
+$path =~ s{/path}{}; # strip file
+my $uid = (stat($path))[4];
+diag "uid $path = $uid";
+cmp_ok $uid, '==', $info->{uid}, "owner $info->{uid}";
+
+File::Path::remove_tree("/tmp/test.$$"); # cleanup
+