by choosing "stable" (about 1m30s) or "fast" (about 30s) as second
argument of testrunner, only tests are run, which are currently
succeeding on a plain trunk vm using docker. (times are on my machine)
I hope we can in this way re-enable them on nightlies (or even in gerrit)
so that devs have some better feedback on the impact of our changes.
Current status of tests (in trunk):
| Problems:
| api-callforwards.t
| api-balanceintervals.t
| api-faxes.t
| api-journals.t
|
| Fixed:
| api-all-links.t
| api-contracts.t
| api-customercontacts.t
| api-customers.t
| api-rewriterulesets.t
| api-root.t
|
| Working:
| api-billingfees.t
| api-billingnetworks.t
| api-billingprofiles.t
| api-billingzones.t
| api-calllists.t
| api-calls.t
| api-cert-auth.t
| api-cfdestinationsets.t
| api-ncoslevels.t
| api-pbxdevicemodels.t
| api-pbxdevices.t
| api-peeringgroups.t
| api-peeringrules.t
| api-peeringservers.t
| api-preferences.t
| api-profilepackages.t
| api-resellers.t
| api-rewriterules.t
| api-soundsets.t
| api-subscriberregistrations.t
| api-subscribers.t
| api-systemcontacts.t
| api-threads.t
| api-topuplogs.t
| api-trustedsources.t
| api-valid-patch.t
| api-vouchers.t
Change-Id: I74e672d9dc6bcccfd3ace2fe233dbcf325c6fc4d
this is important, because it allows us, to be completely
independent of their href uris, whom we cannot always trust (the domain
part in particular)
Change-Id: Ic67f8240dfb50a5ea4948931d7e0554ce7f5ef4e
+input validation for verlapping time ranges
for both weekdays and special. can be disabled.
+root entiy locking
+peektime special is growing and not paginated,
so PUT/PATCH will get slower if special peektimes
are added on a regular basis. they can be removed
using the UI however
+testcase to check overlap detection
Change-Id: I935d943078ab5c81263da88ecd04e004deb26c8b
creating and deleting the entities users and networks
via the rtc api, when a reseller is created or modified
Change-Id: I2e9c785cacec680d1b22827983abca6037cdee3b
Otherwise we are failing with error:
> t/api-rest/api-faxes.t ..
> ok 1 - check faxserver feature state: disabled
> ok 2 - check error message in body: Faxserver feature is not active
> # Tests were run but no plan was declared and done_testing() was not seen.
> Dubious, test returned 254 (wstat 65024, 0xfe00)
> All 2 subtests passed
>
> Test Summary Report
> -------------------
> t/api-rest/api-faxes.t (Wstat: 65024 Tests: 2 Failed: 0)
> Non-zero exit status: 254
> Parse errors: No plan found in TAP output
Change-Id: Iff32b25ced931931af8cbaedc7fb054e48773667
Otherwise we are getting error:
> not ok 10 - Check existence of rating_status field
>
> # Failed test 'Check existence of rating_status field'
> # at t/api-rest/api-calllists.t line 50.
> # Total number of calls: 0
Change-Id: I257e198b740363d5d25d6d35a29a482f966377fb
+subscriber instead of source_subscriber typo fixed
+rudimentary test case to see if the filter works
+fixed in/out direction filter testcase: sum of in and
out calls should be >= total count of calls
Change-Id: Ibe4b8153f023c53bb463626ad9e6613992fc101d
The jenkins_docker_run script is invoked from Jenkins
when running the docker image. The testrunner script
now takes two additional arguments to support sharing
test results via another docker volume and to control
output format ("pretty" as default but junit for usage
on Jenkins).
While at it fix some quoting issue identified by shellcheck.
Change-Id: Ided716e0e0ca23751b0ee2961f3e301acb80128d
+basically, the fix means to set
billing.contract_balances.start
billing.contract_balances.end
billing.contracts.create_timestamp
billing.contracts.modify_timestamp
to the 'local' timezone.
+test cases added
Change-Id: I203f8fc93df2b53c1cfe89bb1a90cdf6388e20b3
Fix faxserversettings PUT/PATCH processing found after faxes tests run
MT#15441 Tests for subscriber number changes
MT#12347 Test framework small fixes and additions
Some format changes and unused library removals
Add put_and_get method as common
Replace request_get & check 200 with check_item_get
Changes for API that doesn't return created object json after POST
Complete base_uri using replacement with normalize_uri
Change-Id: Ia31a97eb9511f1ca1de63c72bcbe380b89dfed34
any *attempt* of a top-up request should be
logged.
+create top-up log records for api
in order to record failed top-up requests as well,
the somewhat tricky thing is to have two
separate transactions here
+propery casting of topup request json field
values to numbers etc., so the transaction for
creating the log entry cannot fail and e.g.
requests with subscriber_id='blah' are recorded
correctly
+new "request_token" parameter for /api/topupvoucher
and /api/topupcash, to identify and filter for
particular requests.
+topup log api resource
+topup log api tests
+fix to correctly reject used vouchers
+topup log panel UI
+fix for balanceintervals.t threaded tests
Change-Id: I86eb845f6173803705b12cc7e5cdbac9a3153a0a
+refactoring recent failing api-balanceintervals.t test to
need only two concurrent transactions (instead of three,
see https://bugtracker.sipwise.com/view.php?id=15277
Change-Id: I4902e616c3adfae81676194fa5e2b99e4b516ed1
For usage instructions please look at the bottom of the Dockerfile,
usage similar to what we already have for the docker selenium tests.
Known problems:
1) In t/api-rest/api-journals.t there's a failure, though all the tests
actually seem to run fine then:
| encountered object 'true', but neither allow_blessed nor convert_blessed settings are enabled at /usr/share/perl5/JSON.pm line 154.
| # Tests were run but no plan was declared and done_testing() was not seen.
| # Looks like your test exited with 255 just after 1130.
| [...]
| t/api-rest/api-journals.t (Wstat: 65280 Tests: 1130 Failed: 0)
| Non-zero exit status: 255
| Parse errors: No plan found in TAP output
| Files=25, Tests=8363, 347 wallclock secs ( 1.14 usr 0.11 sys + 32.59 cusr 2.23 csys = 36.07 CPU)
2) Failures in t/api-rest/api-balanceintervals.t, might be caused by
timing issues/rerunning them, needs investigation though:
| t/api-rest/api-balanceintervals.t (Wstat: 65024 Tests: 1875 Failed: 318)
| Failed tests: 51, 56-59, 62, 67, 70, 75-80, 83, 88, 108-109
| [...]
Change-Id: I5d697cab4a1a4c6697857fc63c03b8d3fd8965d2
making tests finally compatible with jessie.
there is one test left using certificate auth now,
the others use password auth. this enables us to move
the certificate logic out of Module::Build.
also, sipwise::base has been mostly removed from the
modified files.
Change-Id: Id0d9172c2f3f7ca2b69eaa9f16eeb99dc1d6ea11
in short: whenever the contract_balances "cash_balance" is
about to decrease, it might drop below thresholds defined
by a contract's profile package. in that case, subscribers
are to be locked and/or underrun billing profile sets are
to be applied. this commit also contains some minor fixes:
+when creating/editing profile packages, all billing
profiles of initial, topup, underrun sets must show the
same interval_free_cash and interval_free_time values.
there was also a problem with adding profile sets to
packages that use profile with prepaid = 1 (see ticket
14301)
+when editing packages using the panel UI, the validation
was not properly invoked (!) +the frequency of topups has
to be limited to 1 per second.
+updating the "lock" subscriber prior to editing or viewing
it in the panel UI was added.
+topup cash and topup voucher panel UI added
+when aquiring multiple contract row locks at once, no
joined tables are used any mure. the number of row locks
is therefore minimal now (see ticket 14903)
+rework of updating prepaid subscriber preference
Change-Id: Ideb0fec2404ca10b3ac5d8735f53620d0c3a24ed
MT#14779 Add default value for the q parameter
MT#14891 Consider form validation for the POST request (create location)
MT#14789 Remove user_agent registration parameter
Change-Id: I9f81ec3ec5c308c731b3dfe6aa5f075c7d7b50ab
This provides a setup to run ngcp-panel tests against
selenium-server using docker. It's based on Debian/jessie and
assumes are reachable NGCP system for running the tests against
(e.g. via `vagrant up ce-trunk`). For usage instructions refer
to the Dockerfile.
NOTE: replacing 'jessie' with 'wheezy' in the Dockerfile provides
a setup based on Debian/wheezy.
Change-Id: I79ca4d44c3a7c454f99148889d4b0d075a79e82b
use strict and warnings
therefore forbid unquoted strings
factor out initialisation
screenshot functionality is implemented upstream
Change-Id: I18a0dcc7a6418dc9fd2fa64d367ae226018a7645
+profile package details view to overlook associations
+voucher count is properly checked before deleting a package
+package_id filters for /api/customers and /api/vouchers
+Fake::Time replaced by Time::Warp for balance_interval tests
+cleanup
Change-Id: Idc34220a9d29c115453eeee2907e70a71cf9f0cc
This is a patcht introducing a variable to disable
setting profile_package_id's in in the contracts
table. The code should therefore behave as before,
as long rate-o-mat and libswrate are ready.
Not once set to 1 and contract balances are written
to a database once, disabling this constant will
mess up contract_balances!
Change-Id: I080460395627202f3f5a386022de643577f4f3c2
The prior "topup" start mode for balance intervals
(contract_balances) creates intervals for each
top-up using a voucher, resulting in dynamic length.
This new "topup_interval" start mode will just align
the *first* balance interval upon the topup. Subsequent
intervals use the constant interval unit+count
specified in the profile package.
Melita user story is completely covered now.
Change-Id: I0a8b8d73a7fbf054d0aa8b2b1e73a54609fdeee0
We have to enable test explicitly using config.yml:
> $yaml->[0]->{www_admin}->{api_debug_opts}->{allow_fake_client_time} = 1;
> $yaml->[0]->{www_admin}->{api_debug_opts}->{allow_delay_commit} = 1;
Otherwise the test api-balanceintervals.t will be skipped.
Change-Id: I280e0199fa5957ad01bc3a59b64188f80a37635e
+applying profile package and billing mappings
+testcase in api-balanceintervals.t
+caveats: to meet melita's user story, an additional 'topup_interval' interval start mode will be required. the currently implemented 'topup' start mode restarts intervals upon every topup and therefore does not provide constantinterval lengths.
Change-Id: I0a4898783c023749994e94e6909833a42debe259
+ synchronized contract balance catchup
+ balance interval resizing upon profile package transitions
+ dynamic interval length, interval start, carry-over propagation, ..
+ end-of-month 'preserve' mode correction for strictly aligned month intervals for start_mode=customer "create" timestamp
+ new api/balanceintervals resource to inspect contracts' balance interval histories
+ updated affected panel UI controllers
+ test case with time warps using Time::Fake
caveats:
- creating an invoice for a given 'period' (month) has to be refactored to select a disitnct balance interval. right now it takes the last interval in the month specified.
- generate_invoice.pl is broken and needs a major refactoring
Change-Id: I7bb54a83b76e510b1baa573a986d05400a7fec1e
-properly validate billing mapping intervals
-api/contracts and api/customers complete
+the problem with updating the "prepaid" preference remains at the moment
+billing_mappings field contains future (editable) mappings only, the full schedule is given in a separate field
+hal-links to all occurring billing profiles and networks
-extended tests: api-customer.t and api-contract.t
-api-billingnetworks.t test
-billing networks panel controller
+search by enclosed IP address
-panel UIs for billing networks, customers, contracts
+past billing mapping intervals that cannot be edited are displayed by a seperate hfh "block" part of the billing_profiles repeatable
-profile packages api, UI
+terminating billing profiles (MT#8645) will be broken
+fixed now: profile cannot be terminated unless there are:
-zero non-terminated customers, whose mappings contain the profile with future or open end
-zero profile packages, that link to the profile in either one of their initial-, underrun- or topup profile sets
+panel edit should work, termination wip
+topup_profiles w/o amounts
+contracts/customers API profile_package_id field:
+apply the package's initial profiles
+api/customer and api/contract profile definition modes (id/profiles/package)
+api OK, api-customer.t tests
+customer and contract panel UI with selector to specify actual billing mapping, schedule or profile package (same as api)
+terminate logic harmonized: profiles, networks, packages
+api tests updated
+prepare for merging: cleanup, enable tests
Change-Id: I6c0dec72f490b5731fc673cd393d6aeb08dd8143
+error message in test descriptions texts
+with recent changes to "description" fields to "required", the strict_sql_mode flage in api-journals.t has to be set.
+missing cftimestes and cfdestinationsets DELETE methods are now finally "journalized" and tested OK.
+other tests were disabled:
>test_billingzone -> journal settings not in yaml file yet, test_customerpreferences -> a valid ncos level item has to be referred (since today?) - ncos api crud methods not journalized yet
>test_profilepreferences -> a valid rewrite rule set item has to be referred (since today?) - rewrite rule set api crud methods not journalized yet
>test_autoattendants -> journal settings not in yaml file yet
>test_subscriberpreferences -> a valid ncos level item has to be referred (since today?) - ncos api crud methods not journalized yet
Change-Id: I75b24b3eb0758d6e4e248758c7861f93abc791c0
-enhanced test detail: did not detect missing CRUD operations yet
-query param 'operation' didn't work for 'recent' yournal entry of all API resources so far
-fix of several copy paste errors in existing rest api code
-...
Change-Id: I71b54212d8126b0280fcad2e568fad52a673cbf0
the journal module introduces a change history of
resources modified by api invocations. the history of
the 'customer' resource demo is accessible at
/api/customers/x/journal.
Change-Id: I4d5d11bc3e35160feed587ce4c1db565991866b2
We have disabled (by default) www_csc and split new
selfcare and admin interfaces, selenium tests should be
updated accordingly.
Change-Id: Idef367a8b4bec1624a3d11819f03ef18f1b94a16
if this ajax call is not yet finished it changes the table, which interferes
with the commands which follow
remove it, as there should be only one row anyways
see 5751#c37733
We should now have working baselines for
- collections (SystemContacts)
- items (SystemContactsItem)
with support for
- collections: OPTIONS, HEAD, GET, POST
- items: OPTIONS, HEAD, GET, PUT, PATCH, DELETE
covered by according tests and with a proper API documentation.
Clearly distinguish between systemcontacts (those without reseller) from
customercontacts (those with resellers). Separating them frees us from
having to handle reseller_id magic.
The tests t/controller_NAME.t are automatically generated by the
catalyst.pl script. They were not complete and individually dont have much
function, so lets group them together in one file.
A problem with the selenium installation on our jenkins seems
to be, that sometimes a page is loaded twice, which for example
deletes an item twice, which results in an error message in the
panel. For now, lets mark the tests which fail on that reason optional.
all selenium tests are working locally with selenium 2.31.0 and
phantomjs 1.9.1 and an empty db-schema dump
particular fixes:
- skip some tests, when no domain is yet created
- select_if_unselected to prevent unselecting preselected checkboxes
- increase some waiting times to fix races with ajax calls