Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision cdc396f5

Von Bernd Bleßmann vor fast 7 Jahren hinzugefügt

  • ID cdc396f5543250ac2cd9ad5b9b45bd2806c8e6c5
  • Vorgänger daa74212
  • Nachfolger ef242c99

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.

Unterschiede anzeigen:

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