foreach my $tbl_stm(keys %tables_creat_stmts){
if(!$schema_tables{$tbl_stm} && !$schema_tables{uc $tbl_stm}){
$st = $tables_creat_stmts{$tbl_stm};
- $self->{parser}->log("CNFParser-> SQL: $st\n");
+ $self->{parser}->log("CNFParser SQL -> $st\n");
try {
$db->do($st);
- $self->{parser}->log("CNFParser-> Created table: $tbl_stm\n");
+ $self->{parser}->log("CNFParser-> Created table: $tbl_stm");
$do_not_auto_synch = 0;
}catch{
die "Failed to create:\n$st\nError:$@"
foreach(@spec){ $q.="\"$_\" == ? and " }
$q =~ s/\sand\s$//;
$st="SELECT * FROM $tbl_stm WHERE $q;";
- $self->{parser}->log("CNFParser-> $st\n");
+ $self->{parser}->log("SQL -> $st");
$sel = $db -> prepare($st);
}else{
my $prime_key = getPrimaryKeyColumnNameWherePart($db, $tbl_stm);
$st="SELECT * FROM $tbl_stm WHERE $prime_key";
- $self->{parser}->log("CNFParser-> $st\n");
+ $self->{parser}->log("SQL -> $st");
$sel = $db -> prepare($st);
my @r = $self->selectRecords($db,"select count(*) from $tbl_stm;")->fetchrow_array();
$hasRecords = 1 if $r[0] > 0
}
}
}
- $self->{parser}->log("CNFParser-> Insert into $tbl_stm -> [". join(',', @ins)."]\n");
+ $self->{parser}->log("SQL -> Insert into $tbl_stm -> [". join(',', @ins)."]");
if($auto_increment){
$auto_increment--;
splice @ins, $auto_increment, 1
}
$db->commit()
}else{
- $self->{parser}->log("CNFParser-> No data collection is available or mapped to $tbl_stm\n");
+ $self->{parser}->log("CNFParser -> No data collection is available or mapped to $tbl_stm\n");
}
}else{
- $self->{parser}->log("CNFParser-> No data collection scanned for $tbl_stm\n");
+ $self->{parser}->log("CNFParser -> No data collection scanned for $tbl_stm\n");
}
}
foreach my $view(keys %views){
if(!$schema_tables{$view}){
$st = $views{$view};
- $self->{parser}->log("CNFParser-> SQL: $st\n");
+ $self->{parser}->log("CNFParser SQL -> $st\n");
$db->do($st);
- $self->{parser}->log("CNFParser-> Created view: $view\n")
+ $self->{parser}->log("CNFParser -> Created view: $view")
}
}
undef %tables_creat_stmts; undef %tables_id_type;
use Clone qw(clone);
use Capture::Tiny 'capture_stdout';
use FileHandle;
+use File::Spec;
use XML::RSS::Parser;
use Date::Manip::Date;
use LWP::Protocol::https; #<-- 20230829 This module some times, will not be auto installed for some reason.
#$parser->log("Feed spec: @col");
my $name = $col[$hdr{Name}];
next if($feed && $feed ne $name);
- my $tree = fetchFeed($self, $name, $col[$hdr{URL}], $col[$hdr{Expires}], $col[$hdr{Description}]);
+ my $tree = fetchFeed($self, $parser, $name, $col[$hdr{URL}], $col[$hdr{Expires}], $col[$hdr{Description}]);
$parser->log("Fetched feed:".$name);
if($tree && ref($$tree) eq 'CNFNode'){
if(not isCNFTrue($self->{CNF_TREE_LOADED}) && isCNFTrue($self->{CNF_TREE_STORE})){
return $output_local
}
-sub fetchFeed($self, $name, $url, $expires, $description){
+sub fetchFeed($self, $cnf_parser, $name, $url, $expires, $description){
my ($MD, $tree, $brew,$bench);
my $console = isCNFTrue($self->{OUTPUT_TO_CONSOLE});
my $fname = $name; $fname =~ s/[\s|\W]/_/g;
$fname = $output_local."rss_$fname.rdf";
+ my $rss_fullpath = File::Spec->rel2abs( $fname );
if(isCNFTrue($self->{RUN_FEEDS})){
if(-e $fname) {
}
unless ( -e $fname ) {
try{
- print "Fetching: $fname -> [$url] ...";
+ $cnf_parser->log("Fetching: $fname -> [$url] ...");
my $res = getstore($url, $fname);
if ($res == 200){
print "done!\n"
}else{
- print "Error<$res>!\n";
+ $cnf_parser->error("Error<$res>!\n");
`curl $url -o $fname`
}
}catch{
- print "Error: $@.\n";
+ $cnf_parser->error( "Error: $@.\n");
return;
}
}
my $t1 = Benchmark->new;
my $td = timediff($t1, $t0);
$bench = "The XML parser for $fname took:\t".timestr($td)."\n" if $benchmark;
-
- print "Parsing: $fname\n";
-
+ $cnf_parser->log("Parsing: $rss_fullpath");
if(!$feed){
- print "Failed to parse RSS feed:$name file:$fname\n";
+ $cnf_parser->error("Failed to parse RSS feed:$name file:$rss_fullpath\n");
return
}
my $stab = "";
my $current_test_file;
+use Cwd qw(getcwd);
+my $CWD = getcwd;
+
###
# Notice All test are to be run from the project directory.
# Not in the test directory.
sub new {
my ($class, $test_file, $self) = @_;
$test_file = $0 if not $test_file;
- $self = bless {test_file=> $test_file,test_cnt=>1,sub_cnt=>0,sub_err=>0}, $class;
+ $self = bless {test_file=> $CWD.'/'.$test_file,test_cnt=>1,sub_cnt=>0,sub_err=>0}, $class;
print BLUE."Running -> ".WHITE."$test_file\n".RESET;
$self->{open}=0;
$current_test_file = $test_file;
++$self->{sub_err};
my ($package, $filename, $line) = caller; $filename =~ s/^(\/(.+)\/)//gs;
print BLINK. BRIGHT_RED. "\t$stab Fail ".$self->{test_cnt}.".".$sub_cnt.": $err",
- BLUE, qq(\n\t$stab\t at -> ./$filename line on $line.\n), RESET;
+ BLUE, qq(\n\t$stab\t at -> $CWD/$filename line on $line.\n), RESET;
return $self
}
my $sub_cnt = ++$self->{sub_cnt};
my ($package, $filename, $line) = caller; $filename =~ s/^(\/(.+)\/)//gs;
print BRIGHT_GREEN, "\t$stab Pass ".$self->{test_cnt}.".".$sub_cnt.": $msg",
- BLUE, qq( at -> ./$filename line on $line.\n), RESET;
+ BLUE, qq( at -> $CWD/$filename line on $line.\n), RESET;
return $self
}
$stab="";
nextCase($self) if $self->{open};
print BRIGHT_CYAN,"\tCase ".$self->{test_cnt}.": $out",
- BLUE, qq(\n\t\t at -> ./$filename line on $line.\n), RESET;
+ BLUE, qq(\n\t\t at -> $CWD/$filename line on $line.\n), RESET;
$self->{open}=1;
return $self
}
use lib "tests";
use lib "system/modules";
-require TestManager;
+ require TestManager;
require CNFParser;
require CNFSQL;
$test->nextCase();
###
$test->case("Test RSS FEEDS Plugin.");
+
my $plugin = $cnf->property('PROCESS_RSS_FEEDS');
$test->failed() if not $plugin;
if(CNFParser::_isTrue($plugin->{CONVERT_TO_CNF_NODES})){