[test-extras] abstract test-data skeleton

pull/466/head
Christopher Lam 7 years ago
parent f92b9459ba
commit 09e0e02a75

@ -364,13 +364,111 @@
(list "Petrol")))))
(define (env-create-test-accounts env)
(env-create-account-structure-alist env
(list "Root"
(list (cons 'type ACCT-TYPE-ASSET))
(list "Bank")
(list "Wallet")
(list "Other")
(list "Expenses"
(list (cons 'type ACCT-TYPE-EXPENSE))))))
(env-create-account-structure-alist
env
(list "Root"
(list (cons 'type ACCT-TYPE-ASSET))
(list "Bank")
(list "Wallet")
(list "Other")
(list "Expenses"
(list (cons 'type ACCT-TYPE-EXPENSE))))))
(define (mnemonic->commodity sym)
(gnc-commodity-table-lookup
(gnc-commodity-table-get-table (gnc-get-current-book))
(gnc-commodity-get-namespace (gnc-default-report-currency))
sym))
(define-public (create-test-data)
(let* ((env (create-test-env))
(GBP (mnemonic->commodity "GBP"))
(structure
(list "Root" (list
(cons 'type ACCT-TYPE-ASSET))
(list "Asset"
(list "Bank")
(list "GBP Bank" (list
(cons 'commodity GBP)))
(list "Wallet"))
(list "Income" (list
(cons 'type ACCT-TYPE-INCOME)))
(list "Income-GBP" (list
(cons 'type ACCT-TYPE-INCOME)
(cons 'commodity GBP)))
(list "Expenses" (list
(cons 'type ACCT-TYPE-EXPENSE)))
(list "Liabilities" (list (cons 'type ACCT-TYPE-LIABILITY)))
(list "Equity" (list
(cons 'type ACCT-TYPE-EQUITY)))))
(account-alist (env-create-account-structure-alist env structure))
(bank (cdr (assoc "Bank" account-alist)))
(gbp-bank (cdr (assoc "GBP Bank" account-alist)))
(wallet (cdr (assoc "Wallet" account-alist)))
(income (cdr (assoc "Income" account-alist)))
(gbp-income (cdr (assoc "Income-GBP" account-alist)))
(expense (cdr (assoc "Expenses" account-alist)))
(liability (cdr (assoc "Liabilities" account-alist)))
(equity (cdr (assoc "Equity" account-alist))))
;; populate datafile with old transactions
(env-transfer env 01 01 1970 bank expense 5
#:description "desc-1" #:num "trn1"
#:memo "memo-3")
(env-transfer env 31 12 1969 income bank 10
#:description "desc-2" #:num "trn2"
#:void-reason "void" #:notes "notes3")
(env-transfer env 31 12 1969 income bank 29
#:description "desc-3" #:num "trn3"
#:reconcile (cons #\c (gnc-dmy2time64 01 03 1970)))
(env-transfer env 01 02 1970 bank expense 15
#:description "desc-4" #:num "trn4"
#:notes "notes2" #:memo "memo-1")
(env-transfer env 10 01 1970 liability expense 10
#:description "desc-5" #:num "trn5"
#:void-reason "any")
(env-transfer env 10 01 1970 liability expense 11
#:description "desc-6" #:num "trn6"
#:notes "notes1")
(env-transfer env 10 02 1970 bank liability 8
#:description "desc-7" #:num "trn7"
#:notes "notes1" #:memo "memo-2"
#:reconcile (cons #\y (gnc-dmy2time64 01 03 1970)))
(env-create-multisplit-transaction
env 14 02 1971
(list (vector bank -100 -100)
(vector expense 80 80)
(vector wallet 20 20))
#:description "$100bank -> $80expenses + $20wallet"
#:notes "multisplit")
(let ((closing-txn (env-transfer
env 31 12 1977 expense equity
111 #:description "Closing")))
(xaccTransSetIsClosingTxn closing-txn #t))
(env-transfer-foreign env 15 01 2000 gbp-bank bank
10 14 #:description "GBP 10 to USD 14")
(env-transfer-foreign env 15 02 2000 bank gbp-bank
9 6 #:description "USD 9 to GBP 6")
(for-each
(lambda (m)
(env-transfer env 08 (1+ m) 1978
gbp-income gbp-bank 51 #:description "#51 income")
(env-transfer env 03 (1+ m) 1978
income bank 103 #:description "$103 income")
(env-transfer env 15 (1+ m) 1978
bank expense 22 #:description "$22 expense")
(env-transfer env 09 (1+ m) 1978
income bank 109 #:description "$109 income"))
(iota 12))
account-alist))

Loading…
Cancel
Save