use strict; use lib './lib'; use LEOCHARRE::DBI; use Cwd; sub _get_new_handle { my $abs = shift; $abs ||= _abs_db(); my $dbh = DBI::connect_sqlite($abs); $dbh or die('cant open db connection, still open?'); print STDERR "\n\n ++ OPENED SQLITE $abs\n\n"; return $dbh; } sub _abs_db { cwd().'/t/test.db'; } sub _gen_random_girl_hash { my $att ={}; my @b = qw(A B C D DD); my @xtra = qw(offenses sins rings houses); my @ln = qw(Higgins Motlovina Rudnichek Ricardo Maldonado Potovac Gutierrez Gimenez Doubenande Smith Rogers DeMurnier); my @fn = qw(Elizabeth Susan Liz Effie Mina Maria Steph Lisa Indira Maggie Lana Saphira Quiana Laetitia Andrea Angela Laura Diana Jenna Lauren Juanita Beatriz Svetlana Maria Madeline Jessica Amanda Valeria Natalia Cristina); my @hair = qw(blonde brunette redhead); my @eyes =qw(green blue gray hazel brown black); my @mn = qw(Sue Jane Anne Nora Doris Lynn Brooke); $att = { chest => (28 + (int rand 8)), cup => _randa(\@b), fname => _randa(\@fn), lname => _randa(\@ln), age => ((int rand 17) + 11), weight => ((int rand 50 ) + 90), waist => int (19 + rand 12), hips => (30 + (int rand 10)), hair => _randa(\@hair), eyes => _randa(\@eyes), height => _rand_height(), }; $att->{bust} = $att->{chest}.$att->{cup}; my @n; if( int rand 2 ){ $att->{mname} = _randa(\@mn); } for(qw(fname mname lname)){ $att->{$_} or next; push @n, $att->{$_}; } $att->{name} = join(' ',@n); $att->{_randa(\@xtra)} = int rand 200; return $att; sub _randa{ my $a = shift; return $a->[(int rand scalar @$a)]; } sub _rand_height { my $f = 5; my $i = int rand 18; if ($i>11){ $i = $i - 12; $f++; } return "$f'$i\""; } } sub _gen_people_metadata { my $count_ = shift; $count_||=800; require Metadata::DB; my $dbh = _get_new_handle() or confess('cant get dbh handle'); $dbh->{AutoCommit} = 0; my $_testop = 10; my $ran=0; my $id = 1; while ( $id++ < $count_){ my $m = Metadata::DB->new({ DBH=>$dbh }); unless($ran){ $m->table_metadata_check; $ran=1; } $m->id($id); my $att = _gen_random_girl_hash(); my $count_added = scalar keys %$att; $m->add(%$att); =for if($id < $_testop){ my @elements = $m->elements; my $count_elements = scalar @elements; my $count_elements_in_obj = $m->elements_count; ok( $count_elements == $count_elements_in_obj,'element count in obj ok'); ok( $count_added == $count_elements, "elements added [$count_added] == elements now[$count_elements]") or die; ### @elements } =cut $m->save; #$m->dbh->commit; } $dbh->commit; $dbh->disconnect; printf STDERR " SAVED %s\n", _abs_db() ; return 1; } 1;