Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 

37 řádky
1.2 KiB

  1. package service
  2. import (
  3. "testing"
  4. "github.com/QuantumNous/new-api/common"
  5. "github.com/QuantumNous/new-api/types"
  6. "github.com/stretchr/testify/require"
  7. )
  8. func TestIsViolationFeeCodeRecognizesOnlyReservedPrefix(t *testing.T) {
  9. require.True(t, IsViolationFeeCode(types.ErrorCode("violation_fee.grok_csam")))
  10. require.False(t, IsViolationFeeCode(types.ErrorCode("grok_csam")))
  11. }
  12. func TestCalcViolationFeeQuotaRejectsInvalidInputsAndRounds(t *testing.T) {
  13. oldQuotaPerUnit := common.QuotaPerUnit
  14. common.QuotaPerUnit = 1000
  15. t.Cleanup(func() { common.QuotaPerUnit = oldQuotaPerUnit })
  16. require.Equal(t, 0, calcViolationFeeQuota(0, 1))
  17. require.Equal(t, 0, calcViolationFeeQuota(1, 0))
  18. require.Equal(t, 333, calcViolationFeeQuota(0.333, 1))
  19. require.Equal(t, 500, calcViolationFeeQuota(0.25, 2))
  20. }
  21. func TestNormalizeViolationFeeErrorMarksExistingViolationCodeAsNonRetryable(t *testing.T) {
  22. err := types.WithOpenAIError(types.OpenAIError{
  23. Code: string(types.ErrorCodeViolationFeeGrokCSAM),
  24. }, 400)
  25. normalized := NormalizeViolationFeeError(err)
  26. require.Equal(t, types.ErrorCodeViolationFeeGrokCSAM, normalized.GetErrorCode())
  27. require.True(t, types.IsSkipRetryError(normalized))
  28. }