mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
[test-charts] will now test presence of *all* standard charts
And will eventually test data for all chart types too.
This commit is contained in:
@@ -2,6 +2,10 @@
|
||||
(gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
|
||||
(use-modules (gnucash engine test test-extras))
|
||||
(use-modules (gnucash report standard-reports net-charts))
|
||||
(use-modules (gnucash report standard-reports account-piecharts))
|
||||
(use-modules (gnucash report standard-reports cashflow-barchart))
|
||||
(use-modules (gnucash report standard-reports daily-reports))
|
||||
(use-modules (gnucash report standard-reports price-scatter))
|
||||
(use-modules (gnucash report stylesheets))
|
||||
(use-modules (gnucash report report-system))
|
||||
(use-modules (gnucash report report-system test test-extras))
|
||||
@@ -14,6 +18,19 @@
|
||||
|
||||
(define variant-alist
|
||||
(list
|
||||
(cons 'liability-piechart "3fe6dce77da24c66bdc8f8efdea7f9ac")
|
||||
(cons 'stock-piechart "e9418ff64f2c11e5b61d1c7508d793ed")
|
||||
(cons 'asset-piechart "5c7fd8a1fe9a4cd38884ff54214aa88a")
|
||||
(cons 'expense-piechart "9bf1892805cb4336be6320fe48ce5446")
|
||||
(cons 'income-piechart "e1bd09b8a1dd49dd85760db9d82b045c")
|
||||
(cons 'cashflow-barchart "5426e4d987f6444387fe70880e5b28a0")
|
||||
(cons 'category-barchart-income "44f81bee049b4b3ea908f8dac9a9474e")
|
||||
(cons 'category-barchart-expense "b1f15b2052c149df93e698fe85a81ea6")
|
||||
(cons 'category-barchart-asset "e9cf815f79db44bcb637d0295093ae3d")
|
||||
(cons 'category-barchart-liability "faf410e8f8da481fbc09e4763da40bcc")
|
||||
(cons 'daily-income "5e2d129f28d14df881c3e47e3053f604")
|
||||
(cons 'daily-expense "dde49fed4ca940959ae7d01b72742530")
|
||||
(cons 'price-scatterplot "1d241609fd4644caad765c95be20ff4c")
|
||||
(cons 'net-worth-barchart "cbba1696c8c24744848062c7f1cf4a72")
|
||||
(cons 'net-worth-linechart "d8b63264186b11e19038001558291366")
|
||||
(cons 'income-expense-barchart "80769921e87943adade887b9835a7685")
|
||||
@@ -46,15 +63,10 @@
|
||||
(list "Asset"
|
||||
(list "Bank"))
|
||||
(list "Income" (list (cons 'type ACCT-TYPE-INCOME)))
|
||||
(list "Liability" (list (cons 'type ACCT-TYPE-LIABILITY)))
|
||||
(list "Expenses" (list (cons 'type ACCT-TYPE-EXPENSE)))
|
||||
(list "Equity" (list (cons 'type ACCT-TYPE-EQUITY)))))
|
||||
|
||||
(define (set-option! options section name value)
|
||||
(let ((option (gnc:lookup-option options section name)))
|
||||
(if option
|
||||
(gnc:option-set-value option value)
|
||||
(test-assert (format #f "wrong-option ~a ~a" section name) #f))))
|
||||
|
||||
(define (null-test variant)
|
||||
;; This null-test tests for the presence of report.
|
||||
(let* ((uuid (variant->uuid variant))
|
||||
@@ -62,16 +74,17 @@
|
||||
(test-assert (format #f "null-test: ~a" variant)
|
||||
(options->render uuid options "null-test"))))
|
||||
|
||||
|
||||
;; the following tests are not ready yet
|
||||
;; unfortunately sxml parsing requires a very valid xhtml, which means
|
||||
;; <script>
|
||||
|
||||
(define (net-charts-test variant)
|
||||
(define (set-option! options section name value)
|
||||
(let ((option (gnc:lookup-option options section name)))
|
||||
(if option
|
||||
(gnc:option-set-value option value)
|
||||
(test-assert (format #f "[~a] wrong-option ~a ~a" variant section name) #f))))
|
||||
(let* ((uuid (variant->uuid variant))
|
||||
(env (create-test-env))
|
||||
(account-alist (env-create-account-structure-alist env structure))
|
||||
(bank (cdr (assoc "Bank" account-alist)))
|
||||
(liability (cdr (assoc "Liability" account-alist)))
|
||||
(income (cdr (assoc "Income" account-alist)))
|
||||
(expense (cdr (assoc "Expenses" account-alist)))
|
||||
(equity (cdr (assoc "Equity" account-alist)))
|
||||
@@ -79,22 +92,43 @@
|
||||
|
||||
(define (default-testing-options)
|
||||
(let ((options (gnc:make-report-options (variant->uuid variant))))
|
||||
(set-option! options "Accounts" "Accounts" (list bank))
|
||||
(set-option! options "General" "Start Date" (cons 'relative 'start-cal-year))
|
||||
(set-option! options "General" "End Date" (cons 'relative 'end-cal-year))
|
||||
|
||||
(unless (memq variant '(liability-piechart asset-piechart stock-piechart))
|
||||
(set-option! options "General" "Start Date" '(relative . start-cal-year)))
|
||||
|
||||
(set-option! options "General" "End Date" '(relative . end-cal-year))
|
||||
|
||||
(unless (eq? variant 'price-scatterplot)
|
||||
(set-option! options "Accounts" "Accounts" (list bank liability)))
|
||||
|
||||
options))
|
||||
|
||||
(env-transfer env 01 01 YEAR bank expense 5 #:description "desc-1" #:num "trn1" #:memo "memo-3")
|
||||
(env-transfer env 21 02 YEAR income bank 10 #:description "desc-2" #:num "trn2" #:void-reason "void" #:notes "notes3")
|
||||
(env-transfer env 11 02 YEAR income bank 29 #:description "desc-3" #:num "trn3"
|
||||
#:reconcile (cons #\c (gnc-dmy2time64 01 03 YEAR)))
|
||||
(env-transfer env 01 02 YEAR bank expense 15 #:description "desc-4" #:num "trn4" #:notes "notes2" #:memo "memo-1")
|
||||
(env-transfer env 10 03 YEAR bank expense 10 #:description "desc-5" #:num "trn5" #:void-reason "any")
|
||||
(env-transfer env 10 03 YEAR expense bank 11 #:description "desc-6" #:num "trn6" #:notes "notes1")
|
||||
(env-transfer env 10 04 YEAR income bank 8 #:description "desc-7" #:num "trn7" #:notes "notes1" #:memo "memo-2"
|
||||
#:reconcile (cons #\y (gnc-dmy2time64 01 03 YEAR)))
|
||||
(env-transfer env 01 01 YEAR equity bank 3)
|
||||
(env-transfer env 11 01 YEAR bank expense 8)
|
||||
(env-transfer env 11 02 YEAR income bank 29)
|
||||
(env-transfer env 21 02 YEAR income bank 10 #:void-reason "void")
|
||||
(env-transfer env 22 02 YEAR liability expense 27)
|
||||
(env-transfer env 01 03 YEAR bank expense 15)
|
||||
(env-transfer env 10 05 YEAR bank expense 10 #:void-reason "any")
|
||||
(env-transfer env 10 07 YEAR expense bank 11)
|
||||
(env-transfer env 10 09 YEAR income bank 8)
|
||||
|
||||
(let* ((options (default-testing-options)))
|
||||
(test-assert (format #f "basic report exists: ~a" variant)
|
||||
(options->render uuid options (format #f "net-charts-test ~a default options" variant))))))
|
||||
(options->render uuid options (format #f "net-charts-test ~a default options" variant))))
|
||||
|
||||
(case variant
|
||||
((liability-piechart stock-piechart asset-piechart expense-piechart income-piechart)
|
||||
'piechart-tests)
|
||||
|
||||
((cashflow-barchart)
|
||||
'cashflow-barchart-test)
|
||||
|
||||
((category-barchart-income category-barchart-expense category-barchart-asset category-barchart-liability)
|
||||
'category-barchart-tests)
|
||||
|
||||
((daily-income daily-expense)
|
||||
'daily-tests)
|
||||
|
||||
((net-worth-barchart income-expense-barchart net-worth-linechart income-expense-linechart)
|
||||
'net-charts-tests))))
|
||||
|
||||
Reference in New Issue
Block a user