~wallyworld/juju-core/fast-lxc-everywhere

« back to all changes in this revision

Viewing changes to provider/joyent/local_test.go

  • Committer: Tarmac
  • Author(s): Ian Booth
  • Date: 2014-04-24 12:33:19 UTC
  • mfrom: (2664.1.4 constraints-vocab)
  • Revision ID: tarmac-20140424123319-iifvboa1kjuprj7l
[r=wallyworld] Support constraints vocabs

Add support to constraints validation for
vocabs for each attribute. eg arch and
instance-type can only have well defined
values for each provider. The vocab check
is part of constraints validation.

https://codereview.appspot.com/96730043/

Show diffs side-by-side

added added

removed removed

Lines of Context:
424
424
 
425
425
func (s *localServerSuite) TestConstraintsValidator(c *gc.C) {
426
426
        env := s.Prepare(c)
427
 
        validator := env.ConstraintsValidator()
 
427
        validator, err := env.ConstraintsValidator()
 
428
        c.Assert(err, gc.IsNil)
428
429
        cons := constraints.MustParse("arch=amd64 tags=bar cpu-power=10")
429
430
        unsupported, err := validator.Validate(cons)
430
431
        c.Assert(err, gc.IsNil)
431
432
        c.Assert(unsupported, gc.DeepEquals, []string{"cpu-power", "tags"})
432
433
}
 
434
 
 
435
func (s *localServerSuite) TestConstraintsValidatorVocab(c *gc.C) {
 
436
        env := s.Prepare(c)
 
437
        validator, err := env.ConstraintsValidator()
 
438
        c.Assert(err, gc.IsNil)
 
439
        cons := constraints.MustParse("arch=ppc64")
 
440
        _, err = validator.Validate(cons)
 
441
        c.Assert(err, gc.ErrorMatches, "invalid constraint value: arch=ppc64\nvalid values are:.*")
 
442
        cons = constraints.MustParse("instance-type=foo")
 
443
        _, err = validator.Validate(cons)
 
444
        c.Assert(err, gc.ErrorMatches, "invalid constraint value: instance-type=foo\nvalid values are:.*")
 
445
}