Revision cdc396f5
Von Bernd Bleßmann vor fast 7 Jahren hinzugefügt
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.