Revision cdc396f5
Von Bernd Bleßmann vor mehr als 7 Jahren hinzugefügt
t/controllers/csvimport/artransactions.t | ||
---|---|---|
65 | 65 |
sub test_import { |
66 | 66 |
my $file = shift; |
67 | 67 |
|
68 |
my $controller = SL::Controller::CsvImport->new(); |
|
68 |
my $controller = SL::Controller::CsvImport->new( |
|
69 |
type => 'ar_transactions' |
|
70 |
); |
|
71 |
$controller->load_default_profile; |
|
72 |
$controller->profile->set( |
|
73 |
encoding => 'utf-8', |
|
74 |
sep_char => ',', |
|
75 |
quote_char => '"', |
|
76 |
numberformat => $::myconfig{numberformat}, |
|
77 |
); |
|
69 | 78 |
|
70 | 79 |
my $csv_artransactions_import = SL::Controller::CsvImport::ARTransaction->new( |
71 | 80 |
settings => {'ar_column' => 'Rechnung', |
... | ... | |
77 | 86 |
); |
78 | 87 |
|
79 | 88 |
# $csv_artransactions_import->init_vc_by; |
80 |
$csv_artransactions_import->test_run(0); |
|
81 |
$csv_artransactions_import->csv(SL::Helper::Csv->new(file => $csv_artransactions_import->file, |
|
82 |
profile => $csv_artransactions_import->profile, |
|
83 |
encoding => 'utf-8', |
|
84 |
ignore_unknown_columns => 1, |
|
85 |
strict_profile => 1, |
|
86 |
case_insensitive_header => 1, |
|
87 |
sep_char => ',', |
|
88 |
quote_char => '"', |
|
89 |
ignore_unknown_columns => 1, |
|
90 |
)); |
|
91 |
|
|
92 |
$csv_artransactions_import->csv->parse; |
|
93 |
|
|
94 |
$csv_artransactions_import->controller->errors([ $csv_artransactions_import->csv->errors ]) if $csv_artransactions_import->csv->errors; |
|
95 |
|
|
96 |
return if ( !$csv_artransactions_import->csv->header || $csv_artransactions_import->csv->errors ); |
|
97 |
|
|
98 |
my $headers; |
|
99 |
my $i = 0; |
|
100 |
foreach my $header (@{ $csv_artransactions_import->csv->header }) { |
|
101 |
|
|
102 |
my $profile = $csv_artransactions_import->csv->profile->[$i]->{profile}; |
|
103 |
my $row_ident = $csv_artransactions_import->csv->profile->[$i]->{row_ident}; |
|
104 |
|
|
105 |
my $h = { headers => [ grep { $profile->{$_} } @{ $header } ] }; |
|
106 |
$h->{methods} = [ map { $profile->{$_} } @{ $h->{headers} } ]; |
|
107 |
$h->{used} = { map { ($_ => 1) } @{ $h->{headers} } }; |
|
108 |
|
|
109 |
$headers->{$row_ident} = $h; |
|
110 |
$i++; |
|
111 |
} |
|
112 |
|
|
113 |
$csv_artransactions_import->controller->headers($headers); |
|
114 |
|
|
115 |
my $raw_data_headers; |
|
116 |
my $info_headers; |
|
117 |
foreach my $p (@{ $csv_artransactions_import->csv->profile }) { |
|
118 |
my $ident = $p->{row_ident}; |
|
119 |
$raw_data_headers->{$ident} = { used => { }, headers => [ ] }; |
|
120 |
$info_headers->{$ident} = { used => { }, headers => [ ] }; |
|
121 |
} |
|
122 |
$csv_artransactions_import->controller->raw_data_headers($raw_data_headers); |
|
123 |
$csv_artransactions_import->controller->info_headers($info_headers); |
|
124 |
|
|
125 |
my $objects = $csv_artransactions_import->csv->get_objects; |
|
126 |
my @raw_data = @{ $csv_artransactions_import->csv->get_data }; |
|
127 |
|
|
128 |
$csv_artransactions_import->controller->data([ pairwise { no warnings 'once'; { object => $a, raw_data => $b, errors => [], information => [], info_data => {} } } @$objects, @raw_data ]); |
|
129 |
$csv_artransactions_import->check_objects; |
|
89 |
$csv_artransactions_import->run({test => 0}); |
|
130 | 90 |
|
131 | 91 |
# don't try and save objects that have errors |
132 | 92 |
$csv_artransactions_import->save_objects unless scalar @{$csv_artransactions_import->controller->data->[0]->{errors}}; |
t/controllers/csvimport/parts.t | ||
---|---|---|
96 | 96 |
##### |
97 | 97 |
sub test_import { |
98 | 98 |
my ($file,$settings) = @_; |
99 |
my @profiles; |
|
100 |
my $controller = SL::Controller::CsvImport->new(); |
|
99 |
|
|
100 |
my $controller = SL::Controller::CsvImport->new( |
|
101 |
type => 'parts' |
|
102 |
); |
|
103 |
$controller->load_default_profile; |
|
104 |
$controller->profile->set( |
|
105 |
encoding => 'utf-8', |
|
106 |
sep_char => ';', |
|
107 |
quote_char => '"', |
|
108 |
numberformat => $::myconfig{numberformat}, |
|
109 |
); |
|
101 | 110 |
|
102 | 111 |
my $csv_part_import = SL::Controller::CsvImport::Part->new( |
103 | 112 |
settings => $settings, |
... | ... | |
106 | 115 |
); |
107 | 116 |
#print "profile param type=".$csv_part_import->settings->{parts_type}."\n"; |
108 | 117 |
|
109 |
$csv_part_import->test_run(0); |
|
110 |
$csv_part_import->csv(SL::Helper::Csv->new(file => $csv_part_import->file, |
|
111 |
profile => [{ profile => $csv_part_import->profile, |
|
112 |
class => $csv_part_import->class, |
|
113 |
mapping => $csv_part_import->controller->mappings_for_profile }], |
|
114 |
encoding => 'utf-8', |
|
115 |
ignore_unknown_columns => 1, |
|
116 |
strict_profile => 1, |
|
117 |
case_insensitive_header => 1, |
|
118 |
sep_char => ';', |
|
119 |
quote_char => '"', |
|
120 |
ignore_unknown_columns => 1, |
|
121 |
)); |
|
122 |
|
|
123 |
$csv_part_import->csv->parse; |
|
124 |
|
|
125 |
$csv_part_import->controller->errors([ $csv_part_import->csv->errors ]) if $csv_part_import->csv->errors; |
|
126 |
|
|
127 |
return if ( !$csv_part_import->csv->header || $csv_part_import->csv->errors ); |
|
128 |
|
|
129 |
my $headers = { headers => [ grep { $csv_part_import->csv->dispatcher->is_known($_, 0) } @{ $csv_part_import->csv->header } ] }; |
|
130 |
$headers->{methods} = [ map { $_->{path} } @{ $csv_part_import->csv->specs->[0] } ]; |
|
131 |
$headers->{used} = { map { ($_ => 1) } @{ $headers->{headers} } }; |
|
132 |
$csv_part_import->controller->headers($headers); |
|
133 |
$csv_part_import->controller->raw_data_headers({ used => { }, headers => [ ] }); |
|
134 |
$csv_part_import->controller->info_headers({ used => { }, headers => [ ] }); |
|
135 |
|
|
136 |
my $objects = $csv_part_import->csv->get_objects; |
|
137 |
my @raw_data = @{ $csv_part_import->csv->get_data }; |
|
138 |
|
|
139 |
$csv_part_import->controller->data([ pairwise { no warnings 'once'; { object => $a, raw_data => $b, errors => [], information => [], info_data => {} } } @$objects, @raw_data ]); |
|
140 |
|
|
141 |
$csv_part_import->check_objects; |
|
118 |
$csv_part_import->run({test => 0}); |
|
142 | 119 |
|
143 | 120 |
# don't try and save objects that have errors |
144 | 121 |
$csv_part_import->save_objects unless scalar @{$csv_part_import->controller->data->[0]->{errors}}; |
Auch abrufbar als: Unified diff
Tests CsvImport: run-Methode der Worker verwenden
Vorher wurden der Code der run-Methode aus den Basis-Klassen der Worker
(copy/paste) hier einzeln aufgerufen.