Bugzilla – Attachment 52099 Details for
Bug 16289
Abbreviated formatting for numbering patterns
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 16289: Refactore code and add tests
Bug-16289-Refactore-code-and-add-tests.patch (text/plain), 7.81 KB, created by
Jonathan Druart
on 2016-06-06 19:47:33 UTC
(
hide
)
Description:
Bug 16289: Refactore code and add tests
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2016-06-06 19:47:33 UTC
Size:
7.81 KB
patch
obsolete
>From 3af24ba9635fc3881966774e4228f591ea552a18 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Mon, 6 Jun 2016 20:46:01 +0100 >Subject: [PATCH] Bug 16289: Refactore code and add tests > >Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >--- > C4/Serials.pm | 30 ++++++-------------- > t/Serials/GetNextSeq.t | 76 +++++++++++++++++++++++++------------------------- > 2 files changed, 46 insertions(+), 60 deletions(-) > >diff --git a/C4/Serials.pm b/C4/Serials.pm >index 755fc93..5c942b2 100644 >--- a/C4/Serials.pm >+++ b/C4/Serials.pm >@@ -2498,7 +2498,7 @@ sub _numeration { > $num_type //= ''; > $locale ||= 'en'; > my $string; >- if ( $num_type =~ /^dayname$/ ) { >+ if ( $num_type =~ /^dayname$/ or $num_type =~ /^dayabrv$/ ) { > # 1970-11-01 was a Sunday > $value = $value % 7; > my $dt = DateTime->new( >@@ -2507,33 +2507,19 @@ sub _numeration { > day => $value + 1, > locale => $locale, > ); >- $string = $dt->strftime("%A"); >- } elsif ( $num_type =~ /^dayabrv$/ ) { >- # 1970-11-01 was a Sunday >- $value = $value % 7; >- my $dt = DateTime->new( >- year => 1970, >- month => 11, >- day => $value + 1, >- locale => $locale, >- ); >- $string = $dt->strftime("%a"); >- } elsif ( $num_type =~ /^monthname$/ ) { >- $value = $value % 12; >- my $dt = DateTime->new( >- year => 1970, >- month => $value + 1, >- locale => $locale, >- ); >- $string = $dt->strftime("%B"); >- } elsif ( $num_type =~ /^monthabrv$/ ) { >+ $string = $num_type =~ /^dayname$/ >+ ? $dt->strftime("%A") >+ : $dt->strftime("%a"); >+ } elsif ( $num_type =~ /^monthname$/ or $num_type =~ /^monthabrv$/ ) { > $value = $value % 12; > my $dt = DateTime->new( > year => 1970, > month => $value + 1, > locale => $locale, > ); >- $string = $dt->strftime("%b"); >+ $string = $num_type =~ /^monthname$/ >+ ? $dt->strftime("%B") >+ : $dt->strftime("%b"); > } elsif ( $num_type =~ /^season$/ ) { > my @seasons= qw( Spring Summer Fall Winter ); > $value = $value % 4; >diff --git a/t/Serials/GetNextSeq.t b/t/Serials/GetNextSeq.t >index 2f3a1c3..8fc201a 100644 >--- a/t/Serials/GetNextSeq.t >+++ b/t/Serials/GetNextSeq.t >@@ -43,96 +43,96 @@ $subscription = { > locale => 'C', > }; > $pattern = { >- add1 => 1, add2 => 0, add3 => 0, >- every1 => 1, every2 => 0, every3 => 0, >- whenmorethan1 => 7, whenmorethan2 => 0, whenmorethan3 => 0, >- setto1 => 1, setto2 => 0, setto3 => 0, >- numberingmethod => 'X: {X}', >+ add1 => 1, add2 => 1, add3 => 0, >+ every1 => 1, every2 => 1, every3 => 0, >+ whenmorethan1 => 7, whenmorethan2 => 7, whenmorethan3 => 0, >+ setto1 => 1, setto2 => 1, setto3 => 0, >+ numberingmethod => 'dayname: {X} | dayabrv: {Y}', > numbering1 => 'dayname', >- numbering2 => '', >+ numbering2 => 'dayabrv', > numbering3 => '', > }; > > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Tuesday'); >+is($seq, 'dayname: Tuesday | dayabrv: Tue'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Wednesday'); >+is($seq, 'dayname: Wednesday | dayabrv: Wed'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Thursday'); >+is($seq, 'dayname: Thursday | dayabrv: Thu'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Friday'); >+is($seq, 'dayname: Friday | dayabrv: Fri'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Saturday'); >+is($seq, 'dayname: Saturday | dayabrv: Sat'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Sunday'); >+is($seq, 'dayname: Sunday | dayabrv: Sun'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Monday'); >+is($seq, 'dayname: Monday | dayabrv: Mon'); > > # TEST CASE 3 - 1 variable, use 'monthname' numbering, from 0 to 11 by step of 2 > $subscription = { >- lastvalue1 => 0, lastvalue2 => 1, lastvalue3 => 1, >+ lastvalue1 => 0, lastvalue2 => 0, lastvalue3 => 0, > innerloop1 => 0, innerloop2 => 0, innerloop3 => 0, > skip_serialseq => 0, > irregularity => '', > locale => 'C', # locale set to 'C' to ensure we'll have english strings > }; > $pattern = { >- add1 => 2, add2 => 0, add3 => 0, >- every1 => 1, every2 => 0, every3 => 0, >- whenmorethan1 => 11, whenmorethan2 => 0, whenmorethan3 => 0, >- setto1 => 0, setto2 => 0, setto3 => 0, >- numberingmethod => 'X: {X}', >+ add1 => 2, add2 => 2, add3 => 0, >+ every1 => 1, every2 => 1, every3 => 0, >+ whenmorethan1 => 11, whenmorethan2 => 11, whenmorethan3 => 0, >+ setto1 => 0, setto2 => 0, setto3 => 0, >+ numberingmethod => 'monthname: {X} | monthabrv: {Y}', > numbering1 => 'monthname', >- numbering2 => '', >+ numbering2 => 'monthabrv', > numbering3 => '', > }; > > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: March'); >+is($seq, 'monthname: March | monthabrv: Mar'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: May'); >+is($seq, 'monthname: May | monthabrv: May'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: July'); >+is($seq, 'monthname: July | monthabrv: Jul'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: September'); >+is($seq, 'monthname: September | monthabrv: Sep'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: November'); >+is($seq, 'monthname: November | monthabrv: Nov'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: January'); >+is($seq, 'monthname: January | monthabrv: Jan'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: March'); >+is($seq, 'monthname: March | monthabrv: Mar'); > > # TEST CASE 4 - 1 variable, use 'season' numbering, from 0 to 3 > # Months starts at 0, this implies subscription's lastvalue1 should be 0, > # together with setto1 and whenmorethan1 should be 11 > $subscription = { >- lastvalue1 => 0, lastvalue2 => 1, lastvalue3 => 1, >+ lastvalue1 => 0, lastvalue2 => 0, lastvalue3 => 0, > innerloop1 => 0, innerloop2 => 0, innerloop3 => 0, > skip_serialseq => 0, > irregularity => '', > locale => 'C', # locale set to 'C' to ensure we'll have english strings > }; > $pattern = { >- add1 => 1, add2 => 0, add3 => 0, >- every1 => 1, every2 => 0, every3 => 0, >- whenmorethan1 => 3, whenmorethan2 => 0, whenmorethan3 => 0, >+ add1 => 1, add2 => 1, add3 => 0, >+ every1 => 1, every2 => 1, every3 => 0, >+ whenmorethan1 => 3, whenmorethan2 => 3, whenmorethan3 => 0, > setto1 => 0, setto2 => 0, setto3 => 0, >- numberingmethod => 'X: {X}', >+ numberingmethod => 'season: {X} | seasonabrv: {Y}', > numbering1 => 'season', >- numbering2 => '', >+ numbering2 => 'seasonabrv', > numbering3 => '', > }; > > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Summer'); >+is($seq, 'season: Summer | seasonabrv: Sum'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Fall'); >+is($seq, 'season: Fall | seasonabrv: Fal'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Winter'); >+is($seq, 'season: Winter | seasonabrv: Win'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Spring'); >+is($seq, 'season: Spring | seasonabrv: Spr'); > $seq = _next_seq($subscription, $pattern); >-is($seq, 'X: Summer'); >+is($seq, 'season: Summer | seasonabrv: Sum'); > > # TEST CASE 5 - 2 variables, from 1 to 12, and from 1 to 4 > $subscription = { >-- >2.8.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 16289
:
50363
|
52058
|
52098
| 52099