mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 23:22:26 -05:00 
			
		
		
		
	[chore]: Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#3564)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.9.0 to 1.10.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.9.0...v1.10.0) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
		
					parent
					
						
							
								2ed409888b
							
						
					
				
			
			
				commit
				
					
						934e895ec0
					
				
			
		
					 16 changed files with 634 additions and 266 deletions
				
			
		
							
								
								
									
										2
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
										
									
									
									
								
							|  | @ -64,7 +64,7 @@ require ( | ||||||
| 	github.com/prometheus/client_golang v1.20.5 | 	github.com/prometheus/client_golang v1.20.5 | ||||||
| 	github.com/spf13/cobra v1.8.1 | 	github.com/spf13/cobra v1.8.1 | ||||||
| 	github.com/spf13/viper v1.19.0 | 	github.com/spf13/viper v1.19.0 | ||||||
| 	github.com/stretchr/testify v1.9.0 | 	github.com/stretchr/testify v1.10.0 | ||||||
| 	github.com/superseriousbusiness/activity v1.9.0-gts | 	github.com/superseriousbusiness/activity v1.9.0-gts | ||||||
| 	github.com/superseriousbusiness/httpsig v1.2.0-SSB | 	github.com/superseriousbusiness/httpsig v1.2.0-SSB | ||||||
| 	github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8 | 	github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8 | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								go.sum
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										3
									
								
								go.sum
									
										
									
										generated
									
									
									
								
							|  | @ -527,8 +527,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ | ||||||
| github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= | github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= | ||||||
| github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= | github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | ||||||
| github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= |  | ||||||
| github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
|  | github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= | ||||||
|  | github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= | github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= | ||||||
| github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= | github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= | ||||||
| github.com/superseriousbusiness/activity v1.9.0-gts h1:qWMDeiGdnVi+XG7CfuM7ET87qe9adousU6utWItBX/o= | github.com/superseriousbusiness/activity v1.9.0-gts h1:qWMDeiGdnVi+XG7CfuM7ET87qe9adousU6utWItBX/o= | ||||||
|  |  | ||||||
							
								
								
									
										35
									
								
								vendor/github.com/stretchr/testify/assert/assertion_compare.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								vendor/github.com/stretchr/testify/assert/assertion_compare.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -7,10 +7,13 @@ import ( | ||||||
| 	"time" | 	"time" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type CompareType int | // Deprecated: CompareType has only ever been for internal use and has accidentally been published since v1.6.0. Do not use it. | ||||||
|  | type CompareType = compareResult | ||||||
|  | 
 | ||||||
|  | type compareResult int | ||||||
| 
 | 
 | ||||||
| const ( | const ( | ||||||
| 	compareLess CompareType = iota - 1 | 	compareLess compareResult = iota - 1 | ||||||
| 	compareEqual | 	compareEqual | ||||||
| 	compareGreater | 	compareGreater | ||||||
| ) | ) | ||||||
|  | @ -39,7 +42,7 @@ var ( | ||||||
| 	bytesType = reflect.TypeOf([]byte{}) | 	bytesType = reflect.TypeOf([]byte{}) | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func compare(obj1, obj2 interface{}, kind reflect.Kind) (CompareType, bool) { | func compare(obj1, obj2 interface{}, kind reflect.Kind) (compareResult, bool) { | ||||||
| 	obj1Value := reflect.ValueOf(obj1) | 	obj1Value := reflect.ValueOf(obj1) | ||||||
| 	obj2Value := reflect.ValueOf(obj2) | 	obj2Value := reflect.ValueOf(obj2) | ||||||
| 
 | 
 | ||||||
|  | @ -325,7 +328,13 @@ func compare(obj1, obj2 interface{}, kind reflect.Kind) (CompareType, bool) { | ||||||
| 				timeObj2 = obj2Value.Convert(timeType).Interface().(time.Time) | 				timeObj2 = obj2Value.Convert(timeType).Interface().(time.Time) | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			return compare(timeObj1.UnixNano(), timeObj2.UnixNano(), reflect.Int64) | 			if timeObj1.Before(timeObj2) { | ||||||
|  | 				return compareLess, true | ||||||
|  | 			} | ||||||
|  | 			if timeObj1.Equal(timeObj2) { | ||||||
|  | 				return compareEqual, true | ||||||
|  | 			} | ||||||
|  | 			return compareGreater, true | ||||||
| 		} | 		} | ||||||
| 	case reflect.Slice: | 	case reflect.Slice: | ||||||
| 		{ | 		{ | ||||||
|  | @ -345,7 +354,7 @@ func compare(obj1, obj2 interface{}, kind reflect.Kind) (CompareType, bool) { | ||||||
| 				bytesObj2 = obj2Value.Convert(bytesType).Interface().([]byte) | 				bytesObj2 = obj2Value.Convert(bytesType).Interface().([]byte) | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			return CompareType(bytes.Compare(bytesObj1, bytesObj2)), true | 			return compareResult(bytes.Compare(bytesObj1, bytesObj2)), true | ||||||
| 		} | 		} | ||||||
| 	case reflect.Uintptr: | 	case reflect.Uintptr: | ||||||
| 		{ | 		{ | ||||||
|  | @ -381,7 +390,7 @@ func Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface | ||||||
| 	if h, ok := t.(tHelper); ok { | 	if h, ok := t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
| 	} | 	} | ||||||
| 	return compareTwoValues(t, e1, e2, []CompareType{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs...) | 	return compareTwoValues(t, e1, e2, []compareResult{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GreaterOrEqual asserts that the first element is greater than or equal to the second | // GreaterOrEqual asserts that the first element is greater than or equal to the second | ||||||
|  | @ -394,7 +403,7 @@ func GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...in | ||||||
| 	if h, ok := t.(tHelper); ok { | 	if h, ok := t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
| 	} | 	} | ||||||
| 	return compareTwoValues(t, e1, e2, []CompareType{compareGreater, compareEqual}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs...) | 	return compareTwoValues(t, e1, e2, []compareResult{compareGreater, compareEqual}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Less asserts that the first element is less than the second | // Less asserts that the first element is less than the second | ||||||
|  | @ -406,7 +415,7 @@ func Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) | ||||||
| 	if h, ok := t.(tHelper); ok { | 	if h, ok := t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
| 	} | 	} | ||||||
| 	return compareTwoValues(t, e1, e2, []CompareType{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs...) | 	return compareTwoValues(t, e1, e2, []compareResult{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // LessOrEqual asserts that the first element is less than or equal to the second | // LessOrEqual asserts that the first element is less than or equal to the second | ||||||
|  | @ -419,7 +428,7 @@ func LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...inter | ||||||
| 	if h, ok := t.(tHelper); ok { | 	if h, ok := t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
| 	} | 	} | ||||||
| 	return compareTwoValues(t, e1, e2, []CompareType{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs...) | 	return compareTwoValues(t, e1, e2, []compareResult{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Positive asserts that the specified element is positive | // Positive asserts that the specified element is positive | ||||||
|  | @ -431,7 +440,7 @@ func Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
| 	} | 	} | ||||||
| 	zero := reflect.Zero(reflect.TypeOf(e)) | 	zero := reflect.Zero(reflect.TypeOf(e)) | ||||||
| 	return compareTwoValues(t, e, zero.Interface(), []CompareType{compareGreater}, "\"%v\" is not positive", msgAndArgs...) | 	return compareTwoValues(t, e, zero.Interface(), []compareResult{compareGreater}, "\"%v\" is not positive", msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Negative asserts that the specified element is negative | // Negative asserts that the specified element is negative | ||||||
|  | @ -443,10 +452,10 @@ func Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
| 	} | 	} | ||||||
| 	zero := reflect.Zero(reflect.TypeOf(e)) | 	zero := reflect.Zero(reflect.TypeOf(e)) | ||||||
| 	return compareTwoValues(t, e, zero.Interface(), []CompareType{compareLess}, "\"%v\" is not negative", msgAndArgs...) | 	return compareTwoValues(t, e, zero.Interface(), []compareResult{compareLess}, "\"%v\" is not negative", msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool { | func compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedComparesResults []compareResult, failMessage string, msgAndArgs ...interface{}) bool { | ||||||
| 	if h, ok := t.(tHelper); ok { | 	if h, ok := t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
| 	} | 	} | ||||||
|  | @ -469,7 +478,7 @@ func compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedCompare | ||||||
| 	return true | 	return true | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func containsValue(values []CompareType, value CompareType) bool { | func containsValue(values []compareResult, value compareResult) bool { | ||||||
| 	for _, v := range values { | 	for _, v := range values { | ||||||
| 		if v == value { | 		if v == value { | ||||||
| 			return true | 			return true | ||||||
|  |  | ||||||
							
								
								
									
										34
									
								
								vendor/github.com/stretchr/testify/assert/assertion_format.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								vendor/github.com/stretchr/testify/assert/assertion_format.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -104,8 +104,8 @@ func EqualExportedValuesf(t TestingT, expected interface{}, actual interface{}, | ||||||
| 	return EqualExportedValues(t, expected, actual, append([]interface{}{msg}, args...)...) | 	return EqualExportedValues(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // EqualValuesf asserts that two objects are equal or convertible to the same types | // EqualValuesf asserts that two objects are equal or convertible to the larger | ||||||
| // and equal. | // type and equal. | ||||||
| // | // | ||||||
| //	assert.EqualValuesf(t, uint32(123), int32(123), "error message %s", "formatted") | //	assert.EqualValuesf(t, uint32(123), int32(123), "error message %s", "formatted") | ||||||
| func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | ||||||
|  | @ -186,7 +186,7 @@ func Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick | ||||||
| //	assert.EventuallyWithTf(t, func(c *assert.CollectT, "error message %s", "formatted") { | //	assert.EventuallyWithTf(t, func(c *assert.CollectT, "error message %s", "formatted") { | ||||||
| //		// add assertions as needed; any assertion failure will fail the current tick | //		// add assertions as needed; any assertion failure will fail the current tick | ||||||
| //		assert.True(c, externalValue, "expected 'externalValue' to be true") | //		assert.True(c, externalValue, "expected 'externalValue' to be true") | ||||||
| //	}, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") | //	}, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") | ||||||
| func EventuallyWithTf(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { | func EventuallyWithTf(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { | ||||||
| 	if h, ok := t.(tHelper); ok { | 	if h, ok := t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
|  | @ -568,6 +568,23 @@ func NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, a | ||||||
| 	return NotContains(t, s, contains, append([]interface{}{msg}, args...)...) | 	return NotContains(t, s, contains, append([]interface{}{msg}, args...)...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // NotElementsMatchf asserts that the specified listA(array, slice...) is NOT equal to specified | ||||||
|  | // listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, | ||||||
|  | // the number of appearances of each of them in both lists should not match. | ||||||
|  | // This is an inverse of ElementsMatch. | ||||||
|  | // | ||||||
|  | // assert.NotElementsMatchf(t, [1, 1, 2, 3], [1, 1, 2, 3], "error message %s", "formatted") -> false | ||||||
|  | // | ||||||
|  | // assert.NotElementsMatchf(t, [1, 1, 2, 3], [1, 2, 3], "error message %s", "formatted") -> true | ||||||
|  | // | ||||||
|  | // assert.NotElementsMatchf(t, [1, 2, 3], [1, 2, 4], "error message %s", "formatted") -> true | ||||||
|  | func NotElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) bool { | ||||||
|  | 	if h, ok := t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	return NotElementsMatch(t, listA, listB, append([]interface{}{msg}, args...)...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // NotEmptyf asserts that the specified object is NOT empty.  I.e. not nil, "", false, 0 or either | // NotEmptyf asserts that the specified object is NOT empty.  I.e. not nil, "", false, 0 or either | ||||||
| // a slice or a channel with len == 0. | // a slice or a channel with len == 0. | ||||||
| // | // | ||||||
|  | @ -604,7 +621,16 @@ func NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg s | ||||||
| 	return NotEqualValues(t, expected, actual, append([]interface{}{msg}, args...)...) | 	return NotEqualValues(t, expected, actual, append([]interface{}{msg}, args...)...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NotErrorIsf asserts that at none of the errors in err's chain matches target. | // NotErrorAsf asserts that none of the errors in err's chain matches target, | ||||||
|  | // but if so, sets target to that error value. | ||||||
|  | func NotErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) bool { | ||||||
|  | 	if h, ok := t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	return NotErrorAs(t, err, target, append([]interface{}{msg}, args...)...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NotErrorIsf asserts that none of the errors in err's chain matches target. | ||||||
| // This is a wrapper for errors.Is. | // This is a wrapper for errors.Is. | ||||||
| func NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool { | func NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool { | ||||||
| 	if h, ok := t.(tHelper); ok { | 	if h, ok := t.(tHelper); ok { | ||||||
|  |  | ||||||
							
								
								
									
										68
									
								
								vendor/github.com/stretchr/testify/assert/assertion_forward.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										68
									
								
								vendor/github.com/stretchr/testify/assert/assertion_forward.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -186,8 +186,8 @@ func (a *Assertions) EqualExportedValuesf(expected interface{}, actual interface | ||||||
| 	return EqualExportedValuesf(a.t, expected, actual, msg, args...) | 	return EqualExportedValuesf(a.t, expected, actual, msg, args...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // EqualValues asserts that two objects are equal or convertible to the same types | // EqualValues asserts that two objects are equal or convertible to the larger | ||||||
| // and equal. | // type and equal. | ||||||
| // | // | ||||||
| //	a.EqualValues(uint32(123), int32(123)) | //	a.EqualValues(uint32(123), int32(123)) | ||||||
| func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { | func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { | ||||||
|  | @ -197,8 +197,8 @@ func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAn | ||||||
| 	return EqualValues(a.t, expected, actual, msgAndArgs...) | 	return EqualValues(a.t, expected, actual, msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // EqualValuesf asserts that two objects are equal or convertible to the same types | // EqualValuesf asserts that two objects are equal or convertible to the larger | ||||||
| // and equal. | // type and equal. | ||||||
| // | // | ||||||
| //	a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted") | //	a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted") | ||||||
| func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { | ||||||
|  | @ -336,7 +336,7 @@ func (a *Assertions) Eventually(condition func() bool, waitFor time.Duration, ti | ||||||
| //	a.EventuallyWithT(func(c *assert.CollectT) { | //	a.EventuallyWithT(func(c *assert.CollectT) { | ||||||
| //		// add assertions as needed; any assertion failure will fail the current tick | //		// add assertions as needed; any assertion failure will fail the current tick | ||||||
| //		assert.True(c, externalValue, "expected 'externalValue' to be true") | //		assert.True(c, externalValue, "expected 'externalValue' to be true") | ||||||
| //	}, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") | //	}, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") | ||||||
| func (a *Assertions) EventuallyWithT(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { | func (a *Assertions) EventuallyWithT(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { | ||||||
| 	if h, ok := a.t.(tHelper); ok { | 	if h, ok := a.t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
|  | @ -361,7 +361,7 @@ func (a *Assertions) EventuallyWithT(condition func(collect *CollectT), waitFor | ||||||
| //	a.EventuallyWithTf(func(c *assert.CollectT, "error message %s", "formatted") { | //	a.EventuallyWithTf(func(c *assert.CollectT, "error message %s", "formatted") { | ||||||
| //		// add assertions as needed; any assertion failure will fail the current tick | //		// add assertions as needed; any assertion failure will fail the current tick | ||||||
| //		assert.True(c, externalValue, "expected 'externalValue' to be true") | //		assert.True(c, externalValue, "expected 'externalValue' to be true") | ||||||
| //	}, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") | //	}, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") | ||||||
| func (a *Assertions) EventuallyWithTf(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { | func (a *Assertions) EventuallyWithTf(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { | ||||||
| 	if h, ok := a.t.(tHelper); ok { | 	if h, ok := a.t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
|  | @ -1128,6 +1128,40 @@ func (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg strin | ||||||
| 	return NotContainsf(a.t, s, contains, msg, args...) | 	return NotContainsf(a.t, s, contains, msg, args...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // NotElementsMatch asserts that the specified listA(array, slice...) is NOT equal to specified | ||||||
|  | // listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, | ||||||
|  | // the number of appearances of each of them in both lists should not match. | ||||||
|  | // This is an inverse of ElementsMatch. | ||||||
|  | // | ||||||
|  | // a.NotElementsMatch([1, 1, 2, 3], [1, 1, 2, 3]) -> false | ||||||
|  | // | ||||||
|  | // a.NotElementsMatch([1, 1, 2, 3], [1, 2, 3]) -> true | ||||||
|  | // | ||||||
|  | // a.NotElementsMatch([1, 2, 3], [1, 2, 4]) -> true | ||||||
|  | func (a *Assertions) NotElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) bool { | ||||||
|  | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	return NotElementsMatch(a.t, listA, listB, msgAndArgs...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NotElementsMatchf asserts that the specified listA(array, slice...) is NOT equal to specified | ||||||
|  | // listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, | ||||||
|  | // the number of appearances of each of them in both lists should not match. | ||||||
|  | // This is an inverse of ElementsMatch. | ||||||
|  | // | ||||||
|  | // a.NotElementsMatchf([1, 1, 2, 3], [1, 1, 2, 3], "error message %s", "formatted") -> false | ||||||
|  | // | ||||||
|  | // a.NotElementsMatchf([1, 1, 2, 3], [1, 2, 3], "error message %s", "formatted") -> true | ||||||
|  | // | ||||||
|  | // a.NotElementsMatchf([1, 2, 3], [1, 2, 4], "error message %s", "formatted") -> true | ||||||
|  | func (a *Assertions) NotElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) bool { | ||||||
|  | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	return NotElementsMatchf(a.t, listA, listB, msg, args...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // NotEmpty asserts that the specified object is NOT empty.  I.e. not nil, "", false, 0 or either | // NotEmpty asserts that the specified object is NOT empty.  I.e. not nil, "", false, 0 or either | ||||||
| // a slice or a channel with len == 0. | // a slice or a channel with len == 0. | ||||||
| // | // | ||||||
|  | @ -1200,7 +1234,25 @@ func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg str | ||||||
| 	return NotEqualf(a.t, expected, actual, msg, args...) | 	return NotEqualf(a.t, expected, actual, msg, args...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NotErrorIs asserts that at none of the errors in err's chain matches target. | // NotErrorAs asserts that none of the errors in err's chain matches target, | ||||||
|  | // but if so, sets target to that error value. | ||||||
|  | func (a *Assertions) NotErrorAs(err error, target interface{}, msgAndArgs ...interface{}) bool { | ||||||
|  | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	return NotErrorAs(a.t, err, target, msgAndArgs...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NotErrorAsf asserts that none of the errors in err's chain matches target, | ||||||
|  | // but if so, sets target to that error value. | ||||||
|  | func (a *Assertions) NotErrorAsf(err error, target interface{}, msg string, args ...interface{}) bool { | ||||||
|  | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	return NotErrorAsf(a.t, err, target, msg, args...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NotErrorIs asserts that none of the errors in err's chain matches target. | ||||||
| // This is a wrapper for errors.Is. | // This is a wrapper for errors.Is. | ||||||
| func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) bool { | func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) bool { | ||||||
| 	if h, ok := a.t.(tHelper); ok { | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  | @ -1209,7 +1261,7 @@ func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface | ||||||
| 	return NotErrorIs(a.t, err, target, msgAndArgs...) | 	return NotErrorIs(a.t, err, target, msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NotErrorIsf asserts that at none of the errors in err's chain matches target. | // NotErrorIsf asserts that none of the errors in err's chain matches target. | ||||||
| // This is a wrapper for errors.Is. | // This is a wrapper for errors.Is. | ||||||
| func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) bool { | func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) bool { | ||||||
| 	if h, ok := a.t.(tHelper); ok { | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								vendor/github.com/stretchr/testify/assert/assertion_order.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/stretchr/testify/assert/assertion_order.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -6,7 +6,7 @@ import ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // isOrdered checks that collection contains orderable elements. | // isOrdered checks that collection contains orderable elements. | ||||||
| func isOrdered(t TestingT, object interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool { | func isOrdered(t TestingT, object interface{}, allowedComparesResults []compareResult, failMessage string, msgAndArgs ...interface{}) bool { | ||||||
| 	objKind := reflect.TypeOf(object).Kind() | 	objKind := reflect.TypeOf(object).Kind() | ||||||
| 	if objKind != reflect.Slice && objKind != reflect.Array { | 	if objKind != reflect.Slice && objKind != reflect.Array { | ||||||
| 		return false | 		return false | ||||||
|  | @ -50,7 +50,7 @@ func isOrdered(t TestingT, object interface{}, allowedComparesResults []CompareT | ||||||
| //	assert.IsIncreasing(t, []float{1, 2}) | //	assert.IsIncreasing(t, []float{1, 2}) | ||||||
| //	assert.IsIncreasing(t, []string{"a", "b"}) | //	assert.IsIncreasing(t, []string{"a", "b"}) | ||||||
| func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | ||||||
| 	return isOrdered(t, object, []CompareType{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs...) | 	return isOrdered(t, object, []compareResult{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // IsNonIncreasing asserts that the collection is not increasing | // IsNonIncreasing asserts that the collection is not increasing | ||||||
|  | @ -59,7 +59,7 @@ func IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) boo | ||||||
| //	assert.IsNonIncreasing(t, []float{2, 1}) | //	assert.IsNonIncreasing(t, []float{2, 1}) | ||||||
| //	assert.IsNonIncreasing(t, []string{"b", "a"}) | //	assert.IsNonIncreasing(t, []string{"b", "a"}) | ||||||
| func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | ||||||
| 	return isOrdered(t, object, []CompareType{compareEqual, compareGreater}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs...) | 	return isOrdered(t, object, []compareResult{compareEqual, compareGreater}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // IsDecreasing asserts that the collection is decreasing | // IsDecreasing asserts that the collection is decreasing | ||||||
|  | @ -68,7 +68,7 @@ func IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) | ||||||
| //	assert.IsDecreasing(t, []float{2, 1}) | //	assert.IsDecreasing(t, []float{2, 1}) | ||||||
| //	assert.IsDecreasing(t, []string{"b", "a"}) | //	assert.IsDecreasing(t, []string{"b", "a"}) | ||||||
| func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | ||||||
| 	return isOrdered(t, object, []CompareType{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs...) | 	return isOrdered(t, object, []compareResult{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // IsNonDecreasing asserts that the collection is not decreasing | // IsNonDecreasing asserts that the collection is not decreasing | ||||||
|  | @ -77,5 +77,5 @@ func IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) boo | ||||||
| //	assert.IsNonDecreasing(t, []float{1, 2}) | //	assert.IsNonDecreasing(t, []float{1, 2}) | ||||||
| //	assert.IsNonDecreasing(t, []string{"a", "b"}) | //	assert.IsNonDecreasing(t, []string{"a", "b"}) | ||||||
| func IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | func IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { | ||||||
| 	return isOrdered(t, object, []CompareType{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs...) | 	return isOrdered(t, object, []compareResult{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs...) | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										157
									
								
								vendor/github.com/stretchr/testify/assert/assertions.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										157
									
								
								vendor/github.com/stretchr/testify/assert/assertions.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -19,7 +19,9 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/davecgh/go-spew/spew" | 	"github.com/davecgh/go-spew/spew" | ||||||
| 	"github.com/pmezard/go-difflib/difflib" | 	"github.com/pmezard/go-difflib/difflib" | ||||||
| 	"gopkg.in/yaml.v3" | 
 | ||||||
|  | 	// Wrapper around gopkg.in/yaml.v3 | ||||||
|  | 	"github.com/stretchr/testify/assert/yaml" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| //go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_format.go.tmpl" | //go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_format.go.tmpl" | ||||||
|  | @ -45,6 +47,10 @@ type BoolAssertionFunc func(TestingT, bool, ...interface{}) bool | ||||||
| // for table driven tests. | // for table driven tests. | ||||||
| type ErrorAssertionFunc func(TestingT, error, ...interface{}) bool | type ErrorAssertionFunc func(TestingT, error, ...interface{}) bool | ||||||
| 
 | 
 | ||||||
|  | // PanicAssertionFunc is a common function prototype when validating a panic value.  Can be useful | ||||||
|  | // for table driven tests. | ||||||
|  | type PanicAssertionFunc = func(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool | ||||||
|  | 
 | ||||||
| // Comparison is a custom function that returns true on success and false on failure | // Comparison is a custom function that returns true on success and false on failure | ||||||
| type Comparison func() (success bool) | type Comparison func() (success bool) | ||||||
| 
 | 
 | ||||||
|  | @ -496,7 +502,13 @@ func Same(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) b | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if !samePointers(expected, actual) { | 	same, ok := samePointers(expected, actual) | ||||||
|  | 	if !ok { | ||||||
|  | 		return Fail(t, "Both arguments must be pointers", msgAndArgs...) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if !same { | ||||||
|  | 		// both are pointers but not the same type & pointing to the same address | ||||||
| 		return Fail(t, fmt.Sprintf("Not same: \n"+ | 		return Fail(t, fmt.Sprintf("Not same: \n"+ | ||||||
| 			"expected: %p %#v\n"+ | 			"expected: %p %#v\n"+ | ||||||
| 			"actual  : %p %#v", expected, expected, actual, actual), msgAndArgs...) | 			"actual  : %p %#v", expected, expected, actual, actual), msgAndArgs...) | ||||||
|  | @ -516,7 +528,13 @@ func NotSame(t TestingT, expected, actual interface{}, msgAndArgs ...interface{} | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if samePointers(expected, actual) { | 	same, ok := samePointers(expected, actual) | ||||||
|  | 	if !ok { | ||||||
|  | 		//fails when the arguments are not pointers | ||||||
|  | 		return !(Fail(t, "Both arguments must be pointers", msgAndArgs...)) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if same { | ||||||
| 		return Fail(t, fmt.Sprintf( | 		return Fail(t, fmt.Sprintf( | ||||||
| 			"Expected and actual point to the same object: %p %#v", | 			"Expected and actual point to the same object: %p %#v", | ||||||
| 			expected, expected), msgAndArgs...) | 			expected, expected), msgAndArgs...) | ||||||
|  | @ -524,21 +542,23 @@ func NotSame(t TestingT, expected, actual interface{}, msgAndArgs ...interface{} | ||||||
| 	return true | 	return true | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // samePointers compares two generic interface objects and returns whether | // samePointers checks if two generic interface objects are pointers of the same | ||||||
| // they point to the same object | // type pointing to the same object. It returns two values: same indicating if | ||||||
| func samePointers(first, second interface{}) bool { | // they are the same type and point to the same object, and ok indicating that | ||||||
|  | // both inputs are pointers. | ||||||
|  | func samePointers(first, second interface{}) (same bool, ok bool) { | ||||||
| 	firstPtr, secondPtr := reflect.ValueOf(first), reflect.ValueOf(second) | 	firstPtr, secondPtr := reflect.ValueOf(first), reflect.ValueOf(second) | ||||||
| 	if firstPtr.Kind() != reflect.Ptr || secondPtr.Kind() != reflect.Ptr { | 	if firstPtr.Kind() != reflect.Ptr || secondPtr.Kind() != reflect.Ptr { | ||||||
| 		return false | 		return false, false //not both are pointers | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	firstType, secondType := reflect.TypeOf(first), reflect.TypeOf(second) | 	firstType, secondType := reflect.TypeOf(first), reflect.TypeOf(second) | ||||||
| 	if firstType != secondType { | 	if firstType != secondType { | ||||||
| 		return false | 		return false, true // both are pointers, but of different types | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// compare pointer addresses | 	// compare pointer addresses | ||||||
| 	return first == second | 	return first == second, true | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // formatUnequalValues takes two values of arbitrary types and returns string | // formatUnequalValues takes two values of arbitrary types and returns string | ||||||
|  | @ -572,8 +592,8 @@ func truncatingFormat(data interface{}) string { | ||||||
| 	return value | 	return value | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // EqualValues asserts that two objects are equal or convertible to the same types | // EqualValues asserts that two objects are equal or convertible to the larger | ||||||
| // and equal. | // type and equal. | ||||||
| // | // | ||||||
| //	assert.EqualValues(t, uint32(123), int32(123)) | //	assert.EqualValues(t, uint32(123), int32(123)) | ||||||
| func EqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { | func EqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { | ||||||
|  | @ -615,21 +635,6 @@ func EqualExportedValues(t TestingT, expected, actual interface{}, msgAndArgs .. | ||||||
| 		return Fail(t, fmt.Sprintf("Types expected to match exactly\n\t%v != %v", aType, bType), msgAndArgs...) | 		return Fail(t, fmt.Sprintf("Types expected to match exactly\n\t%v != %v", aType, bType), msgAndArgs...) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if aType.Kind() == reflect.Ptr { |  | ||||||
| 		aType = aType.Elem() |  | ||||||
| 	} |  | ||||||
| 	if bType.Kind() == reflect.Ptr { |  | ||||||
| 		bType = bType.Elem() |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	if aType.Kind() != reflect.Struct { |  | ||||||
| 		return Fail(t, fmt.Sprintf("Types expected to both be struct or pointer to struct \n\t%v != %v", aType.Kind(), reflect.Struct), msgAndArgs...) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	if bType.Kind() != reflect.Struct { |  | ||||||
| 		return Fail(t, fmt.Sprintf("Types expected to both be struct or pointer to struct \n\t%v != %v", bType.Kind(), reflect.Struct), msgAndArgs...) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	expected = copyExportedFields(expected) | 	expected = copyExportedFields(expected) | ||||||
| 	actual = copyExportedFields(actual) | 	actual = copyExportedFields(actual) | ||||||
| 
 | 
 | ||||||
|  | @ -1170,6 +1175,39 @@ func formatListDiff(listA, listB interface{}, extraA, extraB []interface{}) stri | ||||||
| 	return msg.String() | 	return msg.String() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // NotElementsMatch asserts that the specified listA(array, slice...) is NOT equal to specified | ||||||
|  | // listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, | ||||||
|  | // the number of appearances of each of them in both lists should not match. | ||||||
|  | // This is an inverse of ElementsMatch. | ||||||
|  | // | ||||||
|  | // assert.NotElementsMatch(t, [1, 1, 2, 3], [1, 1, 2, 3]) -> false | ||||||
|  | // | ||||||
|  | // assert.NotElementsMatch(t, [1, 1, 2, 3], [1, 2, 3]) -> true | ||||||
|  | // | ||||||
|  | // assert.NotElementsMatch(t, [1, 2, 3], [1, 2, 4]) -> true | ||||||
|  | func NotElementsMatch(t TestingT, listA, listB interface{}, msgAndArgs ...interface{}) (ok bool) { | ||||||
|  | 	if h, ok := t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	if isEmpty(listA) && isEmpty(listB) { | ||||||
|  | 		return Fail(t, "listA and listB contain the same elements", msgAndArgs) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if !isList(t, listA, msgAndArgs...) { | ||||||
|  | 		return Fail(t, "listA is not a list type", msgAndArgs...) | ||||||
|  | 	} | ||||||
|  | 	if !isList(t, listB, msgAndArgs...) { | ||||||
|  | 		return Fail(t, "listB is not a list type", msgAndArgs...) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	extraA, extraB := diffLists(listA, listB) | ||||||
|  | 	if len(extraA) == 0 && len(extraB) == 0 { | ||||||
|  | 		return Fail(t, "listA and listB contain the same elements", msgAndArgs) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return true | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Condition uses a Comparison to assert a complex condition. | // Condition uses a Comparison to assert a complex condition. | ||||||
| func Condition(t TestingT, comp Comparison, msgAndArgs ...interface{}) bool { | func Condition(t TestingT, comp Comparison, msgAndArgs ...interface{}) bool { | ||||||
| 	if h, ok := t.(tHelper); ok { | 	if h, ok := t.(tHelper); ok { | ||||||
|  | @ -1488,6 +1526,9 @@ func InEpsilon(t TestingT, expected, actual interface{}, epsilon float64, msgAnd | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return Fail(t, err.Error(), msgAndArgs...) | 		return Fail(t, err.Error(), msgAndArgs...) | ||||||
| 	} | 	} | ||||||
|  | 	if math.IsNaN(actualEpsilon) { | ||||||
|  | 		return Fail(t, "relative error is NaN", msgAndArgs...) | ||||||
|  | 	} | ||||||
| 	if actualEpsilon > epsilon { | 	if actualEpsilon > epsilon { | ||||||
| 		return Fail(t, fmt.Sprintf("Relative error is too high: %#v (expected)\n"+ | 		return Fail(t, fmt.Sprintf("Relative error is too high: %#v (expected)\n"+ | ||||||
| 			"        < %#v (actual)", epsilon, actualEpsilon), msgAndArgs...) | 			"        < %#v (actual)", epsilon, actualEpsilon), msgAndArgs...) | ||||||
|  | @ -1611,7 +1652,6 @@ func ErrorContains(t TestingT, theError error, contains string, msgAndArgs ...in | ||||||
| 
 | 
 | ||||||
| // matchRegexp return true if a specified regexp matches a string. | // matchRegexp return true if a specified regexp matches a string. | ||||||
| func matchRegexp(rx interface{}, str interface{}) bool { | func matchRegexp(rx interface{}, str interface{}) bool { | ||||||
| 
 |  | ||||||
| 	var r *regexp.Regexp | 	var r *regexp.Regexp | ||||||
| 	if rr, ok := rx.(*regexp.Regexp); ok { | 	if rr, ok := rx.(*regexp.Regexp); ok { | ||||||
| 		r = rr | 		r = rr | ||||||
|  | @ -1619,7 +1659,14 @@ func matchRegexp(rx interface{}, str interface{}) bool { | ||||||
| 		r = regexp.MustCompile(fmt.Sprint(rx)) | 		r = regexp.MustCompile(fmt.Sprint(rx)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return (r.FindStringIndex(fmt.Sprint(str)) != nil) | 	switch v := str.(type) { | ||||||
|  | 	case []byte: | ||||||
|  | 		return r.Match(v) | ||||||
|  | 	case string: | ||||||
|  | 		return r.MatchString(v) | ||||||
|  | 	default: | ||||||
|  | 		return r.MatchString(fmt.Sprint(v)) | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -1872,7 +1919,7 @@ var spewConfigStringerEnabled = spew.ConfigState{ | ||||||
| 	MaxDepth:                10, | 	MaxDepth:                10, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type tHelper interface { | type tHelper = interface { | ||||||
| 	Helper() | 	Helper() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -1911,6 +1958,9 @@ func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick t | ||||||
| 
 | 
 | ||||||
| // CollectT implements the TestingT interface and collects all errors. | // CollectT implements the TestingT interface and collects all errors. | ||||||
| type CollectT struct { | type CollectT struct { | ||||||
|  | 	// A slice of errors. Non-nil slice denotes a failure. | ||||||
|  | 	// If it's non-nil but len(c.errors) == 0, this is also a failure | ||||||
|  | 	// obtained by direct c.FailNow() call. | ||||||
| 	errors []error | 	errors []error | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -1919,9 +1969,10 @@ func (c *CollectT) Errorf(format string, args ...interface{}) { | ||||||
| 	c.errors = append(c.errors, fmt.Errorf(format, args...)) | 	c.errors = append(c.errors, fmt.Errorf(format, args...)) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // FailNow panics. | // FailNow stops execution by calling runtime.Goexit. | ||||||
| func (*CollectT) FailNow() { | func (c *CollectT) FailNow() { | ||||||
| 	panic("Assertion failed") | 	c.fail() | ||||||
|  | 	runtime.Goexit() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Deprecated: That was a method for internal usage that should not have been published. Now just panics. | // Deprecated: That was a method for internal usage that should not have been published. Now just panics. | ||||||
|  | @ -1934,6 +1985,16 @@ func (*CollectT) Copy(TestingT) { | ||||||
| 	panic("Copy() is deprecated") | 	panic("Copy() is deprecated") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (c *CollectT) fail() { | ||||||
|  | 	if !c.failed() { | ||||||
|  | 		c.errors = []error{} // Make it non-nil to mark a failure. | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c *CollectT) failed() bool { | ||||||
|  | 	return c.errors != nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // EventuallyWithT asserts that given condition will be met in waitFor time, | // EventuallyWithT asserts that given condition will be met in waitFor time, | ||||||
| // periodically checking target function each tick. In contrast to Eventually, | // periodically checking target function each tick. In contrast to Eventually, | ||||||
| // it supplies a CollectT to the condition function, so that the condition | // it supplies a CollectT to the condition function, so that the condition | ||||||
|  | @ -1951,14 +2012,14 @@ func (*CollectT) Copy(TestingT) { | ||||||
| //	assert.EventuallyWithT(t, func(c *assert.CollectT) { | //	assert.EventuallyWithT(t, func(c *assert.CollectT) { | ||||||
| //		// add assertions as needed; any assertion failure will fail the current tick | //		// add assertions as needed; any assertion failure will fail the current tick | ||||||
| //		assert.True(c, externalValue, "expected 'externalValue' to be true") | //		assert.True(c, externalValue, "expected 'externalValue' to be true") | ||||||
| //	}, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") | //	}, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") | ||||||
| func EventuallyWithT(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { | func EventuallyWithT(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { | ||||||
| 	if h, ok := t.(tHelper); ok { | 	if h, ok := t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	var lastFinishedTickErrs []error | 	var lastFinishedTickErrs []error | ||||||
| 	ch := make(chan []error, 1) | 	ch := make(chan *CollectT, 1) | ||||||
| 
 | 
 | ||||||
| 	timer := time.NewTimer(waitFor) | 	timer := time.NewTimer(waitFor) | ||||||
| 	defer timer.Stop() | 	defer timer.Stop() | ||||||
|  | @ -1978,16 +2039,16 @@ func EventuallyWithT(t TestingT, condition func(collect *CollectT), waitFor time | ||||||
| 			go func() { | 			go func() { | ||||||
| 				collect := new(CollectT) | 				collect := new(CollectT) | ||||||
| 				defer func() { | 				defer func() { | ||||||
| 					ch <- collect.errors | 					ch <- collect | ||||||
| 				}() | 				}() | ||||||
| 				condition(collect) | 				condition(collect) | ||||||
| 			}() | 			}() | ||||||
| 		case errs := <-ch: | 		case collect := <-ch: | ||||||
| 			if len(errs) == 0 { | 			if !collect.failed() { | ||||||
| 				return true | 				return true | ||||||
| 			} | 			} | ||||||
| 			// Keep the errors from the last ended condition, so that they can be copied to t if timeout is reached. | 			// Keep the errors from the last ended condition, so that they can be copied to t if timeout is reached. | ||||||
| 			lastFinishedTickErrs = errs | 			lastFinishedTickErrs = collect.errors | ||||||
| 			tick = ticker.C | 			tick = ticker.C | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | @ -2049,7 +2110,7 @@ func ErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { | ||||||
| 	), msgAndArgs...) | 	), msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NotErrorIs asserts that at none of the errors in err's chain matches target. | // NotErrorIs asserts that none of the errors in err's chain matches target. | ||||||
| // This is a wrapper for errors.Is. | // This is a wrapper for errors.Is. | ||||||
| func NotErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { | func NotErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { | ||||||
| 	if h, ok := t.(tHelper); ok { | 	if h, ok := t.(tHelper); ok { | ||||||
|  | @ -2090,6 +2151,24 @@ func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{ | ||||||
| 	), msgAndArgs...) | 	), msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // NotErrorAs asserts that none of the errors in err's chain matches target, | ||||||
|  | // but if so, sets target to that error value. | ||||||
|  | func NotErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) bool { | ||||||
|  | 	if h, ok := t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	if !errors.As(err, target) { | ||||||
|  | 		return true | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	chain := buildErrorChainString(err) | ||||||
|  | 
 | ||||||
|  | 	return Fail(t, fmt.Sprintf("Target error should not be in err chain:\n"+ | ||||||
|  | 		"found: %q\n"+ | ||||||
|  | 		"in chain: %s", target, chain, | ||||||
|  | 	), msgAndArgs...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func buildErrorChainString(err error) string { | func buildErrorChainString(err error) string { | ||||||
| 	if err == nil { | 	if err == nil { | ||||||
| 		return "" | 		return "" | ||||||
|  |  | ||||||
							
								
								
									
										25
									
								
								vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | ||||||
|  | //go:build testify_yaml_custom && !testify_yaml_fail && !testify_yaml_default | ||||||
|  | // +build testify_yaml_custom,!testify_yaml_fail,!testify_yaml_default | ||||||
|  | 
 | ||||||
|  | // Package yaml is an implementation of YAML functions that calls a pluggable implementation. | ||||||
|  | // | ||||||
|  | // This implementation is selected with the testify_yaml_custom build tag. | ||||||
|  | // | ||||||
|  | //	go test -tags testify_yaml_custom | ||||||
|  | // | ||||||
|  | // This implementation can be used at build time to replace the default implementation | ||||||
|  | // to avoid linking with [gopkg.in/yaml.v3]. | ||||||
|  | // | ||||||
|  | // In your test package: | ||||||
|  | // | ||||||
|  | //		import assertYaml "github.com/stretchr/testify/assert/yaml" | ||||||
|  | // | ||||||
|  | //		func init() { | ||||||
|  | //			assertYaml.Unmarshal = func (in []byte, out interface{}) error { | ||||||
|  | //				// ... | ||||||
|  | //	     			return nil | ||||||
|  | //			} | ||||||
|  | //		} | ||||||
|  | package yaml | ||||||
|  | 
 | ||||||
|  | var Unmarshal func(in []byte, out interface{}) error | ||||||
							
								
								
									
										37
									
								
								vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,37 @@ | ||||||
|  | //go:build !testify_yaml_fail && !testify_yaml_custom | ||||||
|  | // +build !testify_yaml_fail,!testify_yaml_custom | ||||||
|  | 
 | ||||||
|  | // Package yaml is just an indirection to handle YAML deserialization. | ||||||
|  | // | ||||||
|  | // This package is just an indirection that allows the builder to override the | ||||||
|  | // indirection with an alternative implementation of this package that uses | ||||||
|  | // another implementation of YAML deserialization. This allows to not either not | ||||||
|  | // use YAML deserialization at all, or to use another implementation than | ||||||
|  | // [gopkg.in/yaml.v3] (for example for license compatibility reasons, see [PR #1120]). | ||||||
|  | // | ||||||
|  | // Alternative implementations are selected using build tags: | ||||||
|  | // | ||||||
|  | //   - testify_yaml_fail: [Unmarshal] always fails with an error | ||||||
|  | //   - testify_yaml_custom: [Unmarshal] is a variable. Caller must initialize it | ||||||
|  | //     before calling any of [github.com/stretchr/testify/assert.YAMLEq] or | ||||||
|  | //     [github.com/stretchr/testify/assert.YAMLEqf]. | ||||||
|  | // | ||||||
|  | // Usage: | ||||||
|  | // | ||||||
|  | //	go test -tags testify_yaml_fail | ||||||
|  | // | ||||||
|  | // You can check with "go list" which implementation is linked: | ||||||
|  | // | ||||||
|  | //	go list -f '{{.Imports}}' github.com/stretchr/testify/assert/yaml | ||||||
|  | //	go list -tags testify_yaml_fail -f '{{.Imports}}' github.com/stretchr/testify/assert/yaml | ||||||
|  | //	go list -tags testify_yaml_custom -f '{{.Imports}}' github.com/stretchr/testify/assert/yaml | ||||||
|  | // | ||||||
|  | // [PR #1120]: https://github.com/stretchr/testify/pull/1120 | ||||||
|  | package yaml | ||||||
|  | 
 | ||||||
|  | import goyaml "gopkg.in/yaml.v3" | ||||||
|  | 
 | ||||||
|  | // Unmarshal is just a wrapper of [gopkg.in/yaml.v3.Unmarshal]. | ||||||
|  | func Unmarshal(in []byte, out interface{}) error { | ||||||
|  | 	return goyaml.Unmarshal(in, out) | ||||||
|  | } | ||||||
							
								
								
									
										18
									
								
								vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | //go:build testify_yaml_fail && !testify_yaml_custom && !testify_yaml_default | ||||||
|  | // +build testify_yaml_fail,!testify_yaml_custom,!testify_yaml_default | ||||||
|  | 
 | ||||||
|  | // Package yaml is an implementation of YAML functions that always fail. | ||||||
|  | // | ||||||
|  | // This implementation can be used at build time to replace the default implementation | ||||||
|  | // to avoid linking with [gopkg.in/yaml.v3]: | ||||||
|  | // | ||||||
|  | //	go test -tags testify_yaml_fail | ||||||
|  | package yaml | ||||||
|  | 
 | ||||||
|  | import "errors" | ||||||
|  | 
 | ||||||
|  | var errNotImplemented = errors.New("YAML functions are not available (see https://pkg.go.dev/github.com/stretchr/testify/assert/yaml)") | ||||||
|  | 
 | ||||||
|  | func Unmarshal([]byte, interface{}) error { | ||||||
|  | 	return errNotImplemented | ||||||
|  | } | ||||||
							
								
								
									
										432
									
								
								vendor/github.com/stretchr/testify/require/require.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										432
									
								
								vendor/github.com/stretchr/testify/require/require.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										2
									
								
								vendor/github.com/stretchr/testify/require/require.go.tmpl
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/stretchr/testify/require/require.go.tmpl
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,4 +1,4 @@ | ||||||
| {{.Comment}} | {{ replace .Comment "assert." "require."}} | ||||||
| func {{.DocInfo.Name}}(t TestingT, {{.Params}}) { | func {{.DocInfo.Name}}(t TestingT, {{.Params}}) { | ||||||
| 	if h, ok := t.(tHelper); ok { h.Helper() } | 	if h, ok := t.(tHelper); ok { h.Helper() } | ||||||
| 	if assert.{{.DocInfo.Name}}(t, {{.ForwardedParams}}) { return } | 	if assert.{{.DocInfo.Name}}(t, {{.ForwardedParams}}) { return } | ||||||
|  |  | ||||||
							
								
								
									
										68
									
								
								vendor/github.com/stretchr/testify/require/require_forward.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										68
									
								
								vendor/github.com/stretchr/testify/require/require_forward.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -187,8 +187,8 @@ func (a *Assertions) EqualExportedValuesf(expected interface{}, actual interface | ||||||
| 	EqualExportedValuesf(a.t, expected, actual, msg, args...) | 	EqualExportedValuesf(a.t, expected, actual, msg, args...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // EqualValues asserts that two objects are equal or convertible to the same types | // EqualValues asserts that two objects are equal or convertible to the larger | ||||||
| // and equal. | // type and equal. | ||||||
| // | // | ||||||
| //	a.EqualValues(uint32(123), int32(123)) | //	a.EqualValues(uint32(123), int32(123)) | ||||||
| func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { | func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { | ||||||
|  | @ -198,8 +198,8 @@ func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAn | ||||||
| 	EqualValues(a.t, expected, actual, msgAndArgs...) | 	EqualValues(a.t, expected, actual, msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // EqualValuesf asserts that two objects are equal or convertible to the same types | // EqualValuesf asserts that two objects are equal or convertible to the larger | ||||||
| // and equal. | // type and equal. | ||||||
| // | // | ||||||
| //	a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted") | //	a.EqualValuesf(uint32(123), int32(123), "error message %s", "formatted") | ||||||
| func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) { | func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) { | ||||||
|  | @ -337,7 +337,7 @@ func (a *Assertions) Eventually(condition func() bool, waitFor time.Duration, ti | ||||||
| //	a.EventuallyWithT(func(c *assert.CollectT) { | //	a.EventuallyWithT(func(c *assert.CollectT) { | ||||||
| //		// add assertions as needed; any assertion failure will fail the current tick | //		// add assertions as needed; any assertion failure will fail the current tick | ||||||
| //		assert.True(c, externalValue, "expected 'externalValue' to be true") | //		assert.True(c, externalValue, "expected 'externalValue' to be true") | ||||||
| //	}, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") | //	}, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") | ||||||
| func (a *Assertions) EventuallyWithT(condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { | func (a *Assertions) EventuallyWithT(condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { | ||||||
| 	if h, ok := a.t.(tHelper); ok { | 	if h, ok := a.t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
|  | @ -362,7 +362,7 @@ func (a *Assertions) EventuallyWithT(condition func(collect *assert.CollectT), w | ||||||
| //	a.EventuallyWithTf(func(c *assert.CollectT, "error message %s", "formatted") { | //	a.EventuallyWithTf(func(c *assert.CollectT, "error message %s", "formatted") { | ||||||
| //		// add assertions as needed; any assertion failure will fail the current tick | //		// add assertions as needed; any assertion failure will fail the current tick | ||||||
| //		assert.True(c, externalValue, "expected 'externalValue' to be true") | //		assert.True(c, externalValue, "expected 'externalValue' to be true") | ||||||
| //	}, 1*time.Second, 10*time.Second, "external state has not changed to 'true'; still false") | //	}, 10*time.Second, 1*time.Second, "external state has not changed to 'true'; still false") | ||||||
| func (a *Assertions) EventuallyWithTf(condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { | func (a *Assertions) EventuallyWithTf(condition func(collect *assert.CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { | ||||||
| 	if h, ok := a.t.(tHelper); ok { | 	if h, ok := a.t.(tHelper); ok { | ||||||
| 		h.Helper() | 		h.Helper() | ||||||
|  | @ -1129,6 +1129,40 @@ func (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg strin | ||||||
| 	NotContainsf(a.t, s, contains, msg, args...) | 	NotContainsf(a.t, s, contains, msg, args...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // NotElementsMatch asserts that the specified listA(array, slice...) is NOT equal to specified | ||||||
|  | // listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, | ||||||
|  | // the number of appearances of each of them in both lists should not match. | ||||||
|  | // This is an inverse of ElementsMatch. | ||||||
|  | // | ||||||
|  | // a.NotElementsMatch([1, 1, 2, 3], [1, 1, 2, 3]) -> false | ||||||
|  | // | ||||||
|  | // a.NotElementsMatch([1, 1, 2, 3], [1, 2, 3]) -> true | ||||||
|  | // | ||||||
|  | // a.NotElementsMatch([1, 2, 3], [1, 2, 4]) -> true | ||||||
|  | func (a *Assertions) NotElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) { | ||||||
|  | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	NotElementsMatch(a.t, listA, listB, msgAndArgs...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NotElementsMatchf asserts that the specified listA(array, slice...) is NOT equal to specified | ||||||
|  | // listB(array, slice...) ignoring the order of the elements. If there are duplicate elements, | ||||||
|  | // the number of appearances of each of them in both lists should not match. | ||||||
|  | // This is an inverse of ElementsMatch. | ||||||
|  | // | ||||||
|  | // a.NotElementsMatchf([1, 1, 2, 3], [1, 1, 2, 3], "error message %s", "formatted") -> false | ||||||
|  | // | ||||||
|  | // a.NotElementsMatchf([1, 1, 2, 3], [1, 2, 3], "error message %s", "formatted") -> true | ||||||
|  | // | ||||||
|  | // a.NotElementsMatchf([1, 2, 3], [1, 2, 4], "error message %s", "formatted") -> true | ||||||
|  | func (a *Assertions) NotElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) { | ||||||
|  | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	NotElementsMatchf(a.t, listA, listB, msg, args...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // NotEmpty asserts that the specified object is NOT empty.  I.e. not nil, "", false, 0 or either | // NotEmpty asserts that the specified object is NOT empty.  I.e. not nil, "", false, 0 or either | ||||||
| // a slice or a channel with len == 0. | // a slice or a channel with len == 0. | ||||||
| // | // | ||||||
|  | @ -1201,7 +1235,25 @@ func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg str | ||||||
| 	NotEqualf(a.t, expected, actual, msg, args...) | 	NotEqualf(a.t, expected, actual, msg, args...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NotErrorIs asserts that at none of the errors in err's chain matches target. | // NotErrorAs asserts that none of the errors in err's chain matches target, | ||||||
|  | // but if so, sets target to that error value. | ||||||
|  | func (a *Assertions) NotErrorAs(err error, target interface{}, msgAndArgs ...interface{}) { | ||||||
|  | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	NotErrorAs(a.t, err, target, msgAndArgs...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NotErrorAsf asserts that none of the errors in err's chain matches target, | ||||||
|  | // but if so, sets target to that error value. | ||||||
|  | func (a *Assertions) NotErrorAsf(err error, target interface{}, msg string, args ...interface{}) { | ||||||
|  | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  | 		h.Helper() | ||||||
|  | 	} | ||||||
|  | 	NotErrorAsf(a.t, err, target, msg, args...) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NotErrorIs asserts that none of the errors in err's chain matches target. | ||||||
| // This is a wrapper for errors.Is. | // This is a wrapper for errors.Is. | ||||||
| func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) { | func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) { | ||||||
| 	if h, ok := a.t.(tHelper); ok { | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  | @ -1210,7 +1262,7 @@ func (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface | ||||||
| 	NotErrorIs(a.t, err, target, msgAndArgs...) | 	NotErrorIs(a.t, err, target, msgAndArgs...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NotErrorIsf asserts that at none of the errors in err's chain matches target. | // NotErrorIsf asserts that none of the errors in err's chain matches target. | ||||||
| // This is a wrapper for errors.Is. | // This is a wrapper for errors.Is. | ||||||
| func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) { | func (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) { | ||||||
| 	if h, ok := a.t.(tHelper); ok { | 	if h, ok := a.t.(tHelper); ok { | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/github.com/stretchr/testify/require/requirements.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/stretchr/testify/require/requirements.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -6,7 +6,7 @@ type TestingT interface { | ||||||
| 	FailNow() | 	FailNow() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type tHelper interface { | type tHelper = interface { | ||||||
| 	Helper() | 	Helper() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								vendor/github.com/stretchr/testify/suite/doc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/stretchr/testify/suite/doc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -5,6 +5,8 @@ | ||||||
| // or individual tests (depending on which interface(s) you | // or individual tests (depending on which interface(s) you | ||||||
| // implement). | // implement). | ||||||
| // | // | ||||||
|  | // The suite package does not support parallel tests. See [issue 934]. | ||||||
|  | // | ||||||
| // A testing suite is usually built by first extending the built-in | // A testing suite is usually built by first extending the built-in | ||||||
| // suite functionality from suite.Suite in testify.  Alternatively, | // suite functionality from suite.Suite in testify.  Alternatively, | ||||||
| // you could reproduce that logic on your own if you wanted (you | // you could reproduce that logic on your own if you wanted (you | ||||||
|  | @ -63,4 +65,6 @@ | ||||||
| //	func TestExampleTestSuite(t *testing.T) { | //	func TestExampleTestSuite(t *testing.T) { | ||||||
| //	    suite.Run(t, new(ExampleTestSuite)) | //	    suite.Run(t, new(ExampleTestSuite)) | ||||||
| //	} | //	} | ||||||
|  | // | ||||||
|  | // [issue 934]: https://github.com/stretchr/testify/issues/934 | ||||||
| package suite | package suite | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -631,9 +631,10 @@ github.com/spf13/viper/internal/encoding/json | ||||||
| github.com/spf13/viper/internal/encoding/toml | github.com/spf13/viper/internal/encoding/toml | ||||||
| github.com/spf13/viper/internal/encoding/yaml | github.com/spf13/viper/internal/encoding/yaml | ||||||
| github.com/spf13/viper/internal/features | github.com/spf13/viper/internal/features | ||||||
| # github.com/stretchr/testify v1.9.0 | # github.com/stretchr/testify v1.10.0 | ||||||
| ## explicit; go 1.17 | ## explicit; go 1.17 | ||||||
| github.com/stretchr/testify/assert | github.com/stretchr/testify/assert | ||||||
|  | github.com/stretchr/testify/assert/yaml | ||||||
| github.com/stretchr/testify/require | github.com/stretchr/testify/require | ||||||
| github.com/stretchr/testify/suite | github.com/stretchr/testify/suite | ||||||
| # github.com/subosito/gotenv v1.6.0 | # github.com/subosito/gotenv v1.6.0 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue