# What this PR does Fix [flaky test](https://github.com/grafana/oncall/actions/runs/4821277510/jobs/8586941639#step:5:706) `test_get_user_groups_filter_by_handle` using `UniqueFaker` on `SlackUserGroupFactory.handle` to make handles always unique. Before: ```shell >>> len(set([SlackUserGroupFactory().handle for _ in range(100)])) 93 ``` After: ```shell >>> len(set([SlackUserGroupFactory().handle for _ in range(100)])) 100 ``` ## Checklist - [x] Unit, integration, and e2e (if applicable) tests updated - [x] Documentation added (or `pr:no public docs` PR label added if not required) - [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not required)
59 lines
1.3 KiB
Python
59 lines
1.3 KiB
Python
import factory
|
|
|
|
from apps.slack.models import (
|
|
SlackActionRecord,
|
|
SlackChannel,
|
|
SlackMessage,
|
|
SlackTeamIdentity,
|
|
SlackUserGroup,
|
|
SlackUserIdentity,
|
|
)
|
|
from common.utils import UniqueFaker
|
|
|
|
|
|
class SlackTeamIdentityFactory(factory.DjangoModelFactory):
|
|
slack_id = UniqueFaker("word")
|
|
cached_name = factory.Faker("word")
|
|
|
|
class Meta:
|
|
model = SlackTeamIdentity
|
|
|
|
|
|
class SlackUserIdentityFactory(factory.DjangoModelFactory):
|
|
slack_id = UniqueFaker("word")
|
|
cached_avatar = "TEST_SLACK_IMAGE_URL"
|
|
cached_name = "TEST_SLACK_NAME"
|
|
cached_slack_login = "TEST_SLACK_LOGIN"
|
|
|
|
class Meta:
|
|
model = SlackUserIdentity
|
|
|
|
|
|
class SlackUserGroupFactory(factory.DjangoModelFactory):
|
|
slack_id = UniqueFaker("word")
|
|
name = factory.Faker("word")
|
|
handle = UniqueFaker("word")
|
|
|
|
class Meta:
|
|
model = SlackUserGroup
|
|
|
|
|
|
class SlackChannelFactory(factory.DjangoModelFactory):
|
|
slack_id = UniqueFaker("word")
|
|
name = factory.Faker("word")
|
|
|
|
class Meta:
|
|
model = SlackChannel
|
|
|
|
|
|
class SlackMessageFactory(factory.DjangoModelFactory):
|
|
slack_id = UniqueFaker("word")
|
|
channel_id = factory.Faker("word")
|
|
|
|
class Meta:
|
|
model = SlackMessage
|
|
|
|
|
|
class SlackActionRecordFactory(factory.DjangoModelFactory):
|
|
class Meta:
|
|
model = SlackActionRecord
|