Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision cdc396f5

Von Bernd Bleßmann vor mehr als 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/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