summaryrefslogtreecommitdiffstats
path: root/spec/unit
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fix #2796 - Fix puppetdoc rdoc selector parsingBrice Figureau2009-11-123-1/+29
| | | | | | | | | | | | | | | | | | This patch fix this bug by adding more to_s methods to ast member so that puppetdoc can just to_s the AST to reconstruct the original puppet code. Of course this is not perfect, but should work most of the time. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* | Fix #2795 - puppetdoc rdoc reports a better error messageBrice Figureau2009-11-121-3/+21
| | | | | | | | | | | | | | | | | | | | When puppetdoc rdoc dies with an unhandled exception, the error message produced didn't mention the file and line where the parser choked. This patch fixes this by trying to locate on which AST structure the rdoc system failed. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* | Fix #2784 - puppetdoc/rdoc didn't parse mono-instruction class contentBrice Figureau2009-11-041-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | class klass { include a, b, c } wasn't producing any rdoc documentation. We were thinking code was always embedded in an array which is not the case for mono-instruction code. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* | Covers the RDoc Puppet Parser with specsBrice Figureau2009-10-242-0/+614
| | | | | | | | | | | | | | | | This doesn't cover all the code, only the part that interacts with Puppet internals which is what matters when Puppet changes. This patch also contains an integration test. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* | type augeas: add 'incl' and 'lens' parametersDavid Lutterkort2009-10-241-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | These parameters allow loading a file anywhere on the filesystem; using them also greatly speeds up processing the resource. * lib/puppet/type/augeas.rb: add 'incl' and 'lens' parameters; change default for 'context' when 'incl' is given. * lib/puppet/provider/augeas/augeas.rb: when 'lens' and 'incl' are given, only load that file * spec/unit/type/augeas.rb: check that constraints on new parameters are enforced This fixes ticket #2694
* | Patch to address feature #2571 to add Oracle support to PuppetAvi Miller2009-10-241-1/+80
|/ | | | | | Adapter requires specifying database, username and password. Signed-off-by: Avi Miller <avi.miller@gmail.com>
* Fix for #2745 fakedata tests not workingMarkus Roberts2009-10-231-4/+4
| | | | | | | | | The old fakedata test facility was not playing nicely with the spec tests; although it looped through all the files failures in any example file after the first were being ignored because of the way fakedataparse was interacting with the before blocks. Signed-off-by: Markus Roberts <Markus@reality.com>
* Fix for #2736, target doesn't work for ssh_authorized_keysMarkus Roberts2009-10-211-51/+28
| | | | | | | | There were a number of problems here (duplicated code, meaningless tests, etc.) but the core was that the last definition of target ignored the provided value if there was also a user specified. Signed-off-by: Markus Roberts <Markus@reality.com>
* Ticket #2734 PSON/JSON not serializing classes of a catalogMarkus Roberts2009-10-191-4/+8
| | | | | | | Now it does, there are tests to prove it, and the related tests for tags and version have been strengthend. Signed-off-by: Markus Roberts <Markus@reality.com>
* Bug #1900 Parsing of quoted $ in stdinJesse Wolfe2009-10-192-2/+8
| | | | | | | | | | | | | | | When code comes in via STDIN or --code , Puppet::Util::Settings interpolates $values in the code, which is probably never the intended behavior. This is the least destructive fix I could think of: have Puppet::Parser::Interpreter ask for the uninterpolated value. More general fixes could be to: a) Add an escape character to Settings's interpolator, and escape STDIN b) Add a mechanism to Settings to mark some values as uninterpolated Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
* Fixing #2735 - node classes are immed. added to classlistLuke Kanies2009-10-181-0/+10
| | | | | | | | | This commit adds any external node classes to the classlist at compiler initialization, so that at least those classes will be isolated from any ordering issues encountered when testing the contents of the class list during compilation. Signed-off-by: Luke Kanies <luke@madstop.com>
* Bundling of pure ruby json lib as "pson"Markus Roberts2009-10-178-210/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bundeling and renaming the pure ruby json library to addresses a number of cross version serliaization bugs (#2615, et al). This patch adds a subset of the files from the json_pure gem to lib/puppet/external/pson (renamed to avoid conflicts with rails) so that we will always have a known-good erialization format available. The pure ruby json gem as distibuted defers to the compiled version if it is installed. This is problematic in some circumstances so the files that have been brought over have been modified to always and only use the bundled version. It's a large patch, so here's a breakdown of the change categories: The majority of the lines are only marginally interesting: * The json lib itself (in lib/puppet/external/pson) make up the bulk of the lines. * Renaming of json to pson make up the second largest group. Somewhat more interesting are the following, which can be located by searching the diffs for the indicated strings: * Adjusting tests to reflect the changes * Changing the encoding/decoding behavior so that nested structures (e.g. resources) don't serialize as escaped strings. This should make it much easier to process the results with external tools, if needed. Search for "to_pson" and "to_pson_data_hash" * Cleaning up the envelope/metadata * Now provides a document_type (as opposed to a ruby class name) by using a symple registration scheme instead of constant lookup (search for "document_type") * Added an api_version (search for "api_version") * Added a hash for document metadata (search for "metadata") * Removing the yaml monkeypatch and instead disabling yaml serialization on ruby 1.8.1 in favor of pson (search for "yaml") * Cleaning up the json/rails feature interaction (they're now totally independent) (search for "feature")
* Proposed alternative solution for #2664 (REGEX / DIV lexing)Markus Roberts2009-10-161-8/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | This is my proposed attack on the lexing problem, with a few minor cleanups to simplify its integration. The strategy: * Anotate tokens with a method "acceptable?" that determines if they can be generated in a given context. Have this default to true. * Give the lexer the notion of a context; initialize it and update it as needed. The present context records the name of the last significant token generated and a start_of_line flag. * When a token is found to match, check if it is acceptable in the present context before generating it. These changes don't result any any change in behaviour but they enable: * Give the REGEX token an acceptable? rule that only permits a regular expression in specific contexts. The other changes were a fix to the scan bug Brice reported, adjusting a test and clearing up some cluttered conditions in the context collection path. Added tests and subsumed change restricting REGEX to one line.
* Fix #2707 config_version fails more helpfullyRein Henrichs2009-10-151-1/+9
| | | | | | Use Puppet::Util.execute to run the config_version command and reraise its potential Puppet::ExecutionFailure exception as a more useful Pupppet::ParseError
* Fixed #2702 - Set :outputdir to "doc" if not specifiedJohn A. Barbuto2009-10-101-0/+6
| | | | Signed-off-by: John A. Barbuto <jbarbuto@corp.sourceforge.com>
* Fix #2672 - Make sure nodenames keep their underscores when used as classnameBrice Figureau2009-09-231-0/+10
| | | | | | | | The #2627 fix was modifying nodename in case of string nodename, but was removing '_'. Since underscores is a valid character in a class name, we now allow it. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix #2664 - Mathematic expressions mis-lexed as RegexBrice Figureau2009-09-221-0/+4
| | | | | | | | | | | | | | | | This is not the real fix. It is just an hot-fix to limit the issue. The issue is that the lexer regexes have precedences over simple '/' (divide). In the following expression: $var = 4096 / 4 $var2 = "/tmp/file" The / 4... part is mis-lexed as a regex instead of a mathematical expression. The current fix limits regex to one-line. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix for #2654 (error generating error message)Markus Roberts2009-09-221-4/+14
| | | | | | | | | | | | | | Since required_features can (and frequently does) return a single item instead of an Array, the error message needed to be more robust. The tests were not specific enough to catch the fact that an error was being raised in the generation of the error, so a more specific test was added and the required_features accessor test was beefed up a little. Signed-off-by: Markus Roberts <Markus@reality.com> Signed-off-by: Markus Roberts <Markus@reality.com>
* Fix #2642 - Runit provider reworkBrice Figureau2009-09-221-3/+13
| | | | | | | | | | | The runit provider was left broken after some work on daemontools on which runit is based, and #2640 didn't override the restart command, so daemontools once was called. This patch aims to fix this provider and bring it on par with daemontools. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fixing #2632 - 'require' works for 0.25 clientsLuke Kanies2009-09-221-7/+13
| | | | | | | | I couldn't find a way to make it compatible with earlier clients, so the docs specify that it doesn't work with them, and it helpfully fails. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing relationship metaparam backward compatibilityLuke Kanies2009-09-221-1/+39
| | | | | | | | | | We broke some cases of metaparam compatibility in 0.25. Most of it was pretty esoteric, but one thing that wasn't working was relationship metaparams specified on defined resources. This adds a compatibility method for older clients. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding version information to the catalog for compatLuke Kanies2009-09-222-0/+21
| | | | | | | We need to be able to do compatibility testing, and this allows us to do so. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2617 - use the cert name as specifiedLuke Kanies2009-09-221-0/+34
| | | | | | | | | | This allows us to search for a cert, and we use the searched-for term as the cert name (for the wrapper, not the actual cert object), rather than the real cert name. This allows us to use symbolic names like 'ca', as we're currently doing. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2656 - puppet parseonly tests don't hangLuke Kanies2009-09-191-0/+1
| | | | | | | It was hanging reading stdin because no code had been supplied. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fix #2638 - Allow creating several nodes with matching namesBrice Figureau2009-09-172-2/+19
| | | | | | | | When we are checking if a node exists before creating a new one we were also trying to match with regex node names, finding matches where in fact there is no equality. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix for #2621 (JSON serialization of exec)Markus Roberts2009-09-161-6/+0
| | | | | | | Removed the array wrapping of values for JSON serialization, and the associated test. Signed-off-by: Markus Roberts <Markus@reality.com>
* Fix #2640 - Daemontools and Runit were not creating the enable symlinkBrice Figureau2009-09-162-3/+21
| | | | | | | | Due to an incorrect tests, those providers weren't enabling themselves when starting, thus failing to create the symlink necessary for them to run. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix #2627 - regex node name could lead to invalid tagBrice Figureau2009-09-161-0/+5
| | | | | | | | | We're converting the regex to a straight name to be used as the node class name which later on will be used as tag. It was possible to generate an invalid tag name (containing leading or successive dots). Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Merged fix for #2601Markus Roberts2009-09-161-0/+62
| | | | | | | | | | | This patch rolls up the changeses discussed on the list & the ticket The fqdn_rand now takes any number of additional arguments of any type that has a string representation (typically integers or strings) and concatenats them on to the salt. The tests have been adjusted to reflect this. Signed-off-by: Markus Roberts <Markus@reality.com>
* Make regsubst() function operate on arrays (feature #2491).Thomas Bellman2009-09-151-0/+80
| | | | | | | | | | | Allow the first argument to the regsubst() function be an array, and perform regexp replacement on each element of the array in that case. This patch also adds more error checking to give better error messages to the user when given bad parameters. Signed-off-by: Thomas Bellman <bellman@nsc.liu.se>
* Fix for #2600 (wrong number of arguments under older mongrel)Markus Roberts2009-09-151-9/+31
| | | | | | | | | | | | | | | | | | This was an API compatibility problem with mongrel's HTTPResponse.start() method between Mongrel 1.0.x and 1.1.x (the number of parameters changed). The older version does not provide the option to set the response header message which was used (redundantly with the response body) to return the error message when the HTTP response was signaling an error. In order to suport the older version the call was wrapped with a fallback and the coresponding code in the other rest implementations was adjusted to always send the error message in the response body. Then the rest terminus was adjusted to pull the message from the response body (if it is present) rather than from the header (which is only used as a fallback for dealing with older puppetmasters), and the tests were augmeted to verify this behaviour. Signed-off-by: Markus Roberts <Markus@reality.com>
* Fixs #2620 authconf interpolation, #2570 0-9 in domain namesMarkus Roberts2009-09-141-28/+77
| | | | | | | | | | | | | | Partial refactoring to clean up the case in the ticket (host name containing dots, begining and ending with a digit, was mistaken for an IP address) and a range of related edge cases. Stopped short of a full refactoring (put off to 0.26 as #2623) Added tests for numerous edge cases. This also fixes the issue raised in #2570. Signed-off-by: Markus Roberts <Markus@reality.com>
* Fix for ticket #2618 (stubbing so redhat tests run under debian)Markus Roberts2009-09-091-0/+2
| | | | | | | | This adds stubs so that the service script used by redhat appears to exist while the tests are running, regardless of the operating system being used to test. Signed-off-by: Markus Roberts <Markus@reality.com>
* Adding tests for the #2599 fixLuke Kanies2009-09-051-0/+11
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Updated permissions on test filesJames Turnbull2009-09-055-0/+0
|
* Refactoring tests to reduce code size, increase coverage, and makeMarkus Roberts2009-09-052-111/+49
| | | | Luke happy.
* This further normalizes the handling of init-style services (includingMarkus Roberts2009-09-052-0/+262
| | | | | | | | | the redhat "service" wrapper script). Removes special case handling of non-zero exit code in redhat (base already did this) and centralizes scattered @resource[:has_____] checks. Tests that proper versions of each are called and one level of fallbacks. Signed-off-by: Markus Roberts <Markus@reality.com>
* Fixed #2589 - Renamed zfs delete to destroy and added testsJames Turnbull2009-09-051-2/+14
|
* Fixed typo in parser testJames Turnbull2009-09-051-1/+1
|
* Fixing #2592 - you can escape slashes in regexesLuke Kanies2009-09-041-0/+14
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2590 - modulepath is not cached inappropriatelyLuke Kanies2009-09-031-0/+5
| | | | | | | | | | | | | | | | It was getting cached by Environment instances too early, thus causing some executables to use the default even when it was overridden. We're taking the slightly extreme step of clearing the environment list if any parameter is set, but this is relatively inexpensive and is the only way to always be correct. The reason that the environments cache this value at all is that to build up their module path they have to search through every known module for a lib or plugins directory, which is then done every time a class is sought in the language. Caching it saves a *ton* of file accesses. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixes #2581. Use new 10.6 global launchd overrides file for service ↵Nigel Kersten2009-09-031-0/+58
| | | | status/enabled
* Fixing #2582 - / no longer autorequires /Luke Kanies2009-09-011-0/+18
| | | | | | This was obviously resulting in a dep cycle. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2577 - clarifying and demoting the deprecation noticeLuke Kanies2009-09-012-18/+22
| | | | | | | It's now just notice instead of a warning, and it clarifies that 0.24 clients can't be present. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2574 - autoloading finds plugins in modulesLuke Kanies2009-09-011-3/+17
| | | | | | | | We had some stupid errors that were preventing this from happening; this fixes them and adds an integration test. Signed-off-by: Luke Kanies <luke@madstop.com>
* The first regex node now matches firstLuke Kanies2009-09-011-3/+4
| | | | | | | Before it was undefined, but now we always match the first defined node. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #2563 - multiple regex nodes now work togetherLuke Kanies2009-09-011-0/+38
| | | | | | | | | | The problem was that we were needing to convert one of the regexes to a string, which wasn't working well. This adds specific rules for how regexes vs. strings get compared. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fix for test isolation portion of Ticket #2511Markus Roberts2009-08-241-12/+11
| | | | | | | | | Ticket #2511 comprises two distinct problems with very similar symptoms. This patch addresses one of them, the test failures which result from spec/units/util/backups.rb directly requiering type/file. Signed-off-by: Markus Roberts <Markus@reality.com>
* Fixing #2549 - autoloading of top-level classes works againLuke Kanies2009-08-241-0/+6
| | | | | | | | This was broken in the recent refactor around autoloading, which didn't special-case classes that specified that they were top-level. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing a heisenbug resulting from a race conditionLuke Kanies2009-08-241-1/+3
| | | | | | | | | | | We had a case where an expectation could be triggered before the thread finished, in which case it was marked as a failure. We just stub the Thread.new to avoid creating a "real" thread, thus skipping the race condition. Signed-off-by: Luke Kanies <luke@madstop.com>