Fix tests.

This commit is contained in:
Pēteris Caune 2019-01-14 11:28:10 +02:00
parent 34e54cca42
commit 965998df18
No known key found for this signature in database
GPG Key ID: E28D7679E9A9EDE2
36 changed files with 97 additions and 67 deletions

View File

@ -6,8 +6,10 @@ class BadgesTestCase(BaseTestCase):
def test_it_shows_badges(self): def test_it_shows_badges(self):
self.client.login(username="alice@example.org", password="password") self.client.login(username="alice@example.org", password="password")
Check.objects.create(user=self.alice, tags="foo a-B_1 baz@") Check.objects.create(user=self.alice, tags="foo a-B_1 baz@",
Check.objects.create(user=self.bob, tags="bobs-tag") project=self.project)
Check.objects.create(user=self.bob, tags="bobs-tag",
project=self.project)
r = self.client.get("/accounts/profile/badges/") r = self.client.get("/accounts/profile/badges/")
self.assertContains(r, "foo.svg") self.assertContains(r, "foo.svg")

View File

@ -9,7 +9,8 @@ class CloseAccountTestCase(BaseTestCase):
@patch("hc.payments.models.Subscription.cancel") @patch("hc.payments.models.Subscription.cancel")
def test_it_works(self, mock_cancel): def test_it_works(self, mock_cancel):
Check.objects.create(user=self.alice, tags="foo a-B_1 baz@") Check.objects.create(user=self.alice, tags="foo a-B_1 baz@",
project=self.project)
Subscription.objects.create(user=self.alice, subscription_id="123") Subscription.objects.create(user=self.alice, subscription_id="123")
self.client.login(username="alice@example.org", password="password") self.client.login(username="alice@example.org", password="password")

View File

@ -1,7 +1,7 @@
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core import mail from django.core import mail
from django.test import TestCase from django.test import TestCase
from hc.accounts.models import Profile from hc.accounts.models import Profile, Project
from hc.api.models import Check from hc.api.models import Check
from django.conf import settings from django.conf import settings
@ -78,7 +78,8 @@ class LoginTestCase(TestCase):
alice.set_password("password") alice.set_password("password")
alice.save() alice.save()
check = Check.objects.create(user=alice) project = Project.objects.create(owner=alice)
check = Check.objects.create(user=alice, project=project)
form = { form = {
"action": "login", "action": "login",

View File

@ -60,7 +60,7 @@ class ProfileTestCase(BaseTestCase):
self.assertEqual(self.project.api_key, "") self.assertEqual(self.project.api_key, "")
def test_it_sends_report(self): def test_it_sends_report(self):
check = Check(name="Test Check", user=self.alice) check = Check(name="Test Check", user=self.alice, project=self.project)
check.last_ping = now() check.last_ping = now()
check.save() check.save()
@ -75,7 +75,7 @@ class ProfileTestCase(BaseTestCase):
self.assertIn("Test Check", message.body) self.assertIn("Test Check", message.body)
def test_it_skips_report_if_no_pings(self): def test_it_skips_report_if_no_pings(self):
check = Check(name="Test Check", user=self.alice) check = Check(name="Test Check", user=self.alice, project=self.project)
check.save() check.save()
sent = self.profile.send_report() sent = self.profile.send_report()
@ -84,7 +84,7 @@ class ProfileTestCase(BaseTestCase):
self.assertEqual(len(mail.outbox), 0) self.assertEqual(len(mail.outbox), 0)
def test_it_skips_report_if_no_recent_pings(self): def test_it_skips_report_if_no_recent_pings(self):
check = Check(name="Test Check", user=self.alice) check = Check(name="Test Check", user=self.alice, project=self.project)
check.last_ping = now() - td(days=365) check.last_ping = now() - td(days=365)
check.save() check.save()
@ -94,7 +94,7 @@ class ProfileTestCase(BaseTestCase):
self.assertEqual(len(mail.outbox), 0) self.assertEqual(len(mail.outbox), 0)
def test_it_sends_nag(self): def test_it_sends_nag(self):
check = Check(name="Test Check", user=self.alice) check = Check(name="Test Check", user=self.alice, project=self.project)
check.status = "down" check.status = "down"
check.last_ping = now() check.last_ping = now()
check.save() check.save()
@ -113,7 +113,7 @@ class ProfileTestCase(BaseTestCase):
self.assertIn("Test Check", message.body) self.assertIn("Test Check", message.body)
def test_it_skips_nag_if_none_down(self): def test_it_skips_nag_if_none_down(self):
check = Check(name="Test Check", user=self.alice) check = Check(name="Test Check", user=self.alice, project=self.project)
check.last_ping = now() check.last_ping = now()
check.save() check.save()

View File

@ -3,6 +3,7 @@ from datetime import timedelta
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.utils import timezone from django.utils import timezone
from hc.accounts.management.commands.pruneusers import Command from hc.accounts.management.commands.pruneusers import Command
from hc.accounts.models import Project
from hc.api.models import Check from hc.api.models import Check
from hc.test import BaseTestCase from hc.test import BaseTestCase
@ -15,7 +16,8 @@ class PruneUsersTestCase(BaseTestCase):
self.charlie.save() self.charlie.save()
# Charlie has one demo check # Charlie has one demo check
Check(user=self.charlie).save() project =Project.objects.create(owner=self.charlie)
Check(user=self.charlie, project=project).save()
Command().handle() Command().handle()

View File

@ -8,7 +8,8 @@ class SwitchTeamTestCase(BaseTestCase):
self.bobs_profile.current_project = None self.bobs_profile.current_project = None
self.bobs_profile.save() self.bobs_profile.save()
c = Check(user=self.alice, name="This belongs to Alice") c = Check(user=self.alice, name="This belongs to Alice",
project=self.project)
c.save() c.save()
self.client.login(username="bob@example.org", password="password") self.client.login(username="bob@example.org", password="password")

View File

@ -6,7 +6,8 @@ class ApiAdminTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(ApiAdminTestCase, self).setUp() super(ApiAdminTestCase, self).setUp()
self.check = Check.objects.create(user=self.alice, tags="foo bar") self.check = Check.objects.create(user=self.alice, tags="foo bar",
project=self.project)
self.alice.is_staff = True self.alice.is_staff = True
self.alice.is_superuser = True self.alice.is_superuser = True
@ -16,7 +17,7 @@ class ApiAdminTestCase(BaseTestCase):
self.client.login(username="alice@example.org", password="password") self.client.login(username="alice@example.org", password="password")
Channel.objects.create(user=self.alice, kind="pushbullet", Channel.objects.create(user=self.alice, kind="pushbullet",
value="test-token") value="test-token", project=self.project)
r = self.client.get("/admin/api/channel/") r = self.client.get("/admin/api/channel/")
self.assertContains(r, "Pushbullet") self.assertContains(r, "Pushbullet")
@ -25,7 +26,7 @@ class ApiAdminTestCase(BaseTestCase):
self.client.login(username="alice@example.org", password="password") self.client.login(username="alice@example.org", password="password")
Channel.objects.create(user=self.alice, kind="email", Channel.objects.create(user=self.alice, kind="email",
value="foo@example.org") value="foo@example.org", project=self.project)
r = self.client.get("/admin/api/channel/") r = self.client.get("/admin/api/channel/")
self.assertContains(r, "Email <i>(unconfirmed)</i>") self.assertContains(r, "Email <i>(unconfirmed)</i>")

View File

@ -9,10 +9,11 @@ class BounceTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(BounceTestCase, self).setUp() super(BounceTestCase, self).setUp()
self.check = Check(user=self.alice, status="up") self.check = Check(user=self.alice, status="up", project=self.project)
self.check.save() self.check.save()
self.channel = Channel(user=self.alice, kind="email") self.channel = Channel(user=self.alice, kind="email",
project=self.project)
self.channel.value = "alice@example.org" self.channel.value = "alice@example.org"
self.channel.email_verified = True self.channel.email_verified = True
self.channel.save() self.channel.save()

View File

@ -11,10 +11,13 @@ class ChannelModelTestCase(BaseTestCase):
def test_it_refreshes_hipchat_access_token(self, mock_post): def test_it_refreshes_hipchat_access_token(self, mock_post):
mock_post.return_value.json.return_value = {"expires_in": 100} mock_post.return_value.json.return_value = {"expires_in": 100}
channel = Channel(kind="hipchat", user=self.alice, value=json.dumps({ value = json.dumps({
"oauthId": "foo", "oauthId": "foo",
"oauthSecret": "bar" "oauthSecret": "bar"
})) })
channel = Channel(kind="hipchat", user=self.alice,
project=self.project, value=value)
channel.refresh_hipchat_access_token() channel.refresh_hipchat_access_token()

View File

@ -155,7 +155,7 @@ class CheckModelTestCase(BaseTestCase):
dt = timezone.make_aware(datetime(2000, 1, 1), timezone=timezone.utc) dt = timezone.make_aware(datetime(2000, 1, 1), timezone=timezone.utc)
# Expect ping every round hour # Expect ping every round hour
check = Check(user=self.alice) check = Check(user=self.alice, project=self.project)
check.kind = "cron" check.kind = "cron"
check.schedule = "0 * * * *" check.schedule = "0 * * * *"
check.status = "up" check.status = "up"

View File

@ -77,7 +77,7 @@ class CreateCheckTestCase(BaseTestCase):
self.assertEqual(r.status_code, 201) self.assertEqual(r.status_code, 201)
def test_it_assigns_channels(self): def test_it_assigns_channels(self):
channel = Channel(user=self.alice) channel = Channel(user=self.alice, project=self.project)
channel.save() channel.save()
r = self.post({"api_key": "X" * 32, "channels": "*"}) r = self.post({"api_key": "X" * 32, "channels": "*"})
@ -138,7 +138,7 @@ class CreateCheckTestCase(BaseTestCase):
expected_fragment="name is too long") expected_fragment="name is too long")
def test_unique_accepts_only_whitelisted_values(self): def test_unique_accepts_only_whitelisted_values(self):
existing = Check(user=self.alice, name="Foo") existing = Check(user=self.alice, name="Foo", project=self.project)
existing.save() existing.save()
self.post({ self.post({

View File

@ -30,7 +30,7 @@ class ListChecksTestCase(BaseTestCase):
self.a2.tags = "a2-tag" self.a2.tags = "a2-tag"
self.a2.save() self.a2.save()
self.c1 = Channel.objects.create(user=self.alice) self.c1 = Channel.objects.create(user=self.alice, project=self.project)
self.a1.channel_set.add(self.c1) self.a1.channel_set.add(self.c1)
def get(self): def get(self):

View File

@ -14,13 +14,13 @@ from requests.exceptions import ConnectionError, Timeout
class NotifyTestCase(BaseTestCase): class NotifyTestCase(BaseTestCase):
def _setup_data(self, kind, value, status="down", email_verified=True): def _setup_data(self, kind, value, status="down", email_verified=True):
self.check = Check() self.check = Check(project=self.project)
self.check.status = status self.check.status = status
self.check.user = self.alice self.check.user = self.alice
self.check.last_ping = now() - td(minutes=61) self.check.last_ping = now() - td(minutes=61)
self.check.save() self.check.save()
self.channel = Channel(user=self.alice) self.channel = Channel(user=self.alice, project=self.project)
self.channel.kind = kind self.channel.kind = kind
self.channel.value = value self.channel.value = value
self.channel.email_verified = email_verified self.channel.email_verified = email_verified

View File

@ -36,7 +36,7 @@ class PauseTestCase(BaseTestCase):
self.assertEqual(r.status_code, 405) self.assertEqual(r.status_code, 405)
def test_it_validates_ownership(self): def test_it_validates_ownership(self):
check = Check(user=self.bob, status="up") check = Check(user=self.bob, status="up", project=self.bobs_project)
check.save() check.save()
url = "/api/v1/checks/%s/pause" % check.code url = "/api/v1/checks/%s/pause" % check.code

View File

@ -10,7 +10,8 @@ class PingTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.check = Check.objects.create(user=self.alice) self.check = Check.objects.create(user=self.alice,
project=self.project)
def test_it_works(self): def test_it_works(self):
r = self.client.get("/ping/%s/" % self.check.code) r = self.client.get("/ping/%s/" % self.check.code)

View File

@ -12,7 +12,7 @@ from hc.test import BaseTestCase
class SendAlertsTestCase(BaseTestCase): class SendAlertsTestCase(BaseTestCase):
def test_it_handles_grace_period(self): def test_it_handles_grace_period(self):
check = Check(user=self.alice, status="up") check = Check(user=self.alice, status="up", project=self.project)
# 1 day 30 minutes after ping the check is in grace period: # 1 day 30 minutes after ping the check is in grace period:
check.last_ping = now() - td(days=1, minutes=30) check.last_ping = now() - td(days=1, minutes=30)
check.alert_after = check.last_ping + td(days=1, hours=1) check.alert_after = check.last_ping + td(days=1, hours=1)
@ -25,7 +25,7 @@ class SendAlertsTestCase(BaseTestCase):
self.assertEqual(Flip.objects.count(), 0) self.assertEqual(Flip.objects.count(), 0)
def test_it_creates_a_flip_when_check_goes_down(self): def test_it_creates_a_flip_when_check_goes_down(self):
check = Check(user=self.alice, status="up") check = Check(user=self.alice, status="up", project=self.project)
check.last_ping = now() - td(days=2) check.last_ping = now() - td(days=2)
check.alert_after = check.last_ping + td(days=1, hours=1) check.alert_after = check.last_ping + td(days=1, hours=1)
check.save() check.save()
@ -48,7 +48,7 @@ class SendAlertsTestCase(BaseTestCase):
@patch("hc.api.management.commands.sendalerts.notify_on_thread") @patch("hc.api.management.commands.sendalerts.notify_on_thread")
def test_it_processes_flip(self, mock_notify): def test_it_processes_flip(self, mock_notify):
check = Check(user=self.alice, status="up") check = Check(user=self.alice, status="up", project=self.project)
check.last_ping = now() check.last_ping = now()
check.alert_after = check.last_ping + td(days=1, hours=1) check.alert_after = check.last_ping + td(days=1, hours=1)
check.save() check.save()
@ -72,7 +72,7 @@ class SendAlertsTestCase(BaseTestCase):
@patch("hc.api.management.commands.sendalerts.notify_on_thread") @patch("hc.api.management.commands.sendalerts.notify_on_thread")
def test_it_updates_alert_after(self, mock_notify): def test_it_updates_alert_after(self, mock_notify):
check = Check(user=self.alice, status="up") check = Check(user=self.alice, status="up", project=self.project)
check.last_ping = now() - td(hours=1) check.last_ping = now() - td(hours=1)
check.alert_after = check.last_ping check.alert_after = check.last_ping
check.save() check.save()
@ -92,7 +92,7 @@ class SendAlertsTestCase(BaseTestCase):
@patch("hc.api.management.commands.sendalerts.notify") @patch("hc.api.management.commands.sendalerts.notify")
def test_it_works_synchronously(self, mock_notify): def test_it_works_synchronously(self, mock_notify):
check = Check(user=self.alice, status="up") check = Check(user=self.alice, status="up", project=self.project)
check.last_ping = now() - td(days=2) check.last_ping = now() - td(days=2)
check.alert_after = check.last_ping + td(days=1, hours=1) check.alert_after = check.last_ping + td(days=1, hours=1)
check.save() check.save()
@ -107,7 +107,7 @@ class SendAlertsTestCase(BaseTestCase):
self.profile.nag_period = td(hours=1) self.profile.nag_period = td(hours=1)
self.profile.save() self.profile.save()
check = Check(user=self.alice, status="down") check = Check(user=self.alice, status="down", project=self.project)
check.last_ping = now() - td(days=2) check.last_ping = now() - td(days=2)
check.save() check.save()
@ -125,7 +125,7 @@ class SendAlertsTestCase(BaseTestCase):
self.bobs_profile.nag_period = td(hours=1) self.bobs_profile.nag_period = td(hours=1)
self.bobs_profile.save() self.bobs_profile.save()
check = Check(user=self.alice, status="down") check = Check(user=self.alice, status="down", project=self.project)
check.last_ping = now() - td(days=2) check.last_ping = now() - td(days=2)
check.save() check.save()
@ -145,7 +145,7 @@ class SendAlertsTestCase(BaseTestCase):
self.profile.next_nag_date = original_nag_date self.profile.next_nag_date = original_nag_date
self.profile.save() self.profile.save()
check = Check(user=self.alice, status="down") check = Check(user=self.alice, status="down", project=self.project)
check.last_ping = now() - td(days=2) check.last_ping = now() - td(days=2)
check.save() check.save()

View File

@ -5,7 +5,7 @@ from django.utils.timezone import now
from hc.api.management.commands.sendreports import Command from hc.api.management.commands.sendreports import Command
from hc.api.models import Check from hc.api.models import Check
from hc.test import BaseTestCase from hc.test import BaseTestCase
from mock import Mock, patch from mock import Mock
class SendAlertsTestCase(BaseTestCase): class SendAlertsTestCase(BaseTestCase):
@ -25,6 +25,7 @@ class SendAlertsTestCase(BaseTestCase):
# And it needs at least one check that has been pinged. # And it needs at least one check that has been pinged.
self.check = Check(user=self.alice, last_ping=now()) self.check = Check(user=self.alice, last_ping=now())
self.check.project = self.project
self.check.status = "down" self.check.status = "down"
self.check.save() self.check.save()

View File

@ -51,7 +51,7 @@ class UpdateCheckTestCase(BaseTestCase):
self.assertIn("POST", r["Access-Control-Allow-Methods"]) self.assertIn("POST", r["Access-Control-Allow-Methods"])
def test_it_unassigns_channels(self): def test_it_unassigns_channels(self):
Channel.objects.create(user=self.alice) Channel.objects.create(user=self.alice, project=self.project)
self.check.assign_all_channels() self.check.assign_all_channels()
r = self.post(self.check.code, { r = self.post(self.check.code, {
@ -78,7 +78,7 @@ class UpdateCheckTestCase(BaseTestCase):
self.assertEqual(r.status_code, 404) self.assertEqual(r.status_code, 404)
def test_it_validates_ownership(self): def test_it_validates_ownership(self):
check = Check(user=self.bob, status="up") check = Check(user=self.bob, status="up", project=self.bobs_project)
check.save() check.save()
r = self.post(check.code, {"api_key": "X" * 32}) r = self.post(check.code, {"api_key": "X" * 32})
@ -96,10 +96,10 @@ class UpdateCheckTestCase(BaseTestCase):
self.assertEqual(self.check.kind, "simple") self.assertEqual(self.check.kind, "simple")
def test_it_sets_single_channel(self): def test_it_sets_single_channel(self):
channel = Channel.objects.create(user=self.alice) channel = Channel.objects.create(user=self.alice, project=self.project)
# Create another channel so we can test that only the first one # Create another channel so we can test that only the first one
# gets assigned: # gets assigned:
Channel.objects.create(user=self.alice) Channel.objects.create(user=self.alice, project=self.project)
r = self.post(self.check.code, { r = self.post(self.check.code, {
"api_key": "X" * 32, "api_key": "X" * 32,
@ -113,8 +113,8 @@ class UpdateCheckTestCase(BaseTestCase):
self.assertEqual(self.check.channel_set.first().code, channel.code) self.assertEqual(self.check.channel_set.first().code, channel.code)
def test_it_handles_comma_separated_channel_codes(self): def test_it_handles_comma_separated_channel_codes(self):
c1 = Channel.objects.create(user=self.alice) c1 = Channel.objects.create(user=self.alice, project=self.project)
c2 = Channel.objects.create(user=self.alice) c2 = Channel.objects.create(user=self.alice, project=self.project)
r = self.post(self.check.code, { r = self.post(self.check.code, {
"api_key": "X" * 32, "api_key": "X" * 32,
"channels": "%s,%s" % (c1.code, c2.code) "channels": "%s,%s" % (c1.code, c2.code)
@ -126,8 +126,8 @@ class UpdateCheckTestCase(BaseTestCase):
self.assertEqual(self.check.channel_set.count(), 2) self.assertEqual(self.check.channel_set.count(), 2)
def test_it_handles_asterix(self): def test_it_handles_asterix(self):
Channel.objects.create(user=self.alice) Channel.objects.create(user=self.alice, project=self.project)
Channel.objects.create(user=self.alice) Channel.objects.create(user=self.alice, project=self.project)
r = self.post(self.check.code, { r = self.post(self.check.code, {
"api_key": "X" * 32, "api_key": "X" * 32,
"channels": "*" "channels": "*"
@ -139,7 +139,7 @@ class UpdateCheckTestCase(BaseTestCase):
self.assertEqual(self.check.channel_set.count(), 2) self.assertEqual(self.check.channel_set.count(), 2)
def test_it_ignores_channels_if_channels_key_missing(self): def test_it_ignores_channels_if_channels_key_missing(self):
Channel.objects.create(user=self.alice) Channel.objects.create(user=self.alice, project=self.project)
self.check.assign_all_channels() self.check.assign_all_channels()
r = self.post(self.check.code, {"api_key": "X" * 32}) r = self.post(self.check.code, {"api_key": "X" * 32})

View File

@ -7,6 +7,7 @@ class ChannelChecksTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(ChannelChecksTestCase, self).setUp() super(ChannelChecksTestCase, self).setUp()
self.channel = Channel(user=self.alice, kind="email") self.channel = Channel(user=self.alice, kind="email")
self.channel.project = self.project
self.channel.value = "alice@example.org" self.channel.value = "alice@example.org"
self.channel.save() self.channel.save()

View File

@ -7,7 +7,7 @@ from hc.test import BaseTestCase
class ChannelsTestCase(BaseTestCase): class ChannelsTestCase(BaseTestCase):
def test_it_formats_complex_slack_value(self): def test_it_formats_complex_slack_value(self):
ch = Channel(kind="slack", user=self.alice) ch = Channel(kind="slack", user=self.alice, project=self.project)
ch.value = json.dumps({ ch.value = json.dumps({
"ok": True, "ok": True,
"team_name": "foo-team", "team_name": "foo-team",
@ -24,7 +24,7 @@ class ChannelsTestCase(BaseTestCase):
self.assertContains(r, "#bar") self.assertContains(r, "#bar")
def test_it_shows_webhook_post_data(self): def test_it_shows_webhook_post_data(self):
ch = Channel(kind="webhook", user=self.alice) ch = Channel(kind="webhook", user=self.alice, project=self.project)
ch.value = "http://down.example.com\nhttp://up.example.com\nfoobar" ch.value = "http://down.example.com\nhttp://up.example.com\nfoobar"
ch.save() ch.save()
@ -38,7 +38,7 @@ class ChannelsTestCase(BaseTestCase):
self.assertContains(r, "foobar") self.assertContains(r, "foobar")
def test_it_shows_pushover_details(self): def test_it_shows_pushover_details(self):
ch = Channel(kind="po", user=self.alice) ch = Channel(kind="po", user=self.alice, project=self.project)
ch.value = "fake-key|0" ch.value = "fake-key|0"
ch.save() ch.save()
@ -49,10 +49,10 @@ class ChannelsTestCase(BaseTestCase):
self.assertContains(r, "(normal priority)") self.assertContains(r, "(normal priority)")
def test_it_shows_disabled_email(self): def test_it_shows_disabled_email(self):
check = Check(user=self.alice, status="up") check = Check(user=self.alice, status="up", project=self.project)
check.save() check.save()
channel = Channel(user=self.alice, kind="email") channel = Channel(user=self.alice, kind="email", project=self.project)
channel.value = "alice@example.org" channel.value = "alice@example.org"
channel.save() channel.save()
@ -65,7 +65,7 @@ class ChannelsTestCase(BaseTestCase):
self.assertContains(r, "Disabled") self.assertContains(r, "Disabled")
def test_it_shows_unconfirmed_email(self): def test_it_shows_unconfirmed_email(self):
channel = Channel(user=self.alice, kind="email") channel = Channel(user=self.alice, kind="email", project=self.project)
channel.value = "alice@example.org" channel.value = "alice@example.org"
channel.save() channel.save()
@ -75,7 +75,7 @@ class ChannelsTestCase(BaseTestCase):
self.assertContains(r, "Unconfirmed") self.assertContains(r, "Unconfirmed")
def test_it_shows_sms_label(self): def test_it_shows_sms_label(self):
ch = Channel(kind="sms", user=self.alice) ch = Channel(kind="sms", user=self.alice, project=self.project)
ch.value = json.dumps({"value": "+123", "label": "My Phone"}) ch.value = json.dumps({"value": "+123", "label": "My Phone"})
ch.save() ch.save()

View File

@ -6,7 +6,7 @@ class DetailsTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(DetailsTestCase, self).setUp() super(DetailsTestCase, self).setUp()
self.check = Check(user=self.alice) self.check = Check(user=self.alice, project=self.project)
self.check.save() self.check.save()
ping = Ping(owner=self.check) ping = Ping(owner=self.check)

View File

@ -6,7 +6,7 @@ class LogTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(LogTestCase, self).setUp() super(LogTestCase, self).setUp()
self.check = Check(user=self.alice) self.check = Check(user=self.alice, project=self.project)
self.check.save() self.check.save()
ping = Ping(owner=self.check) ping = Ping(owner=self.check)
@ -55,7 +55,7 @@ class LogTestCase(BaseTestCase):
self.assertEqual(r.status_code, 404) self.assertEqual(r.status_code, 404)
def test_it_shows_pushover_notifications(self): def test_it_shows_pushover_notifications(self):
ch = Channel(kind="po", user=self.alice) ch = Channel(kind="po", user=self.alice, project=self.project)
ch.save() ch.save()
Notification(owner=self.check, channel=ch, check_status="down").save() Notification(owner=self.check, channel=ch, check_status="down").save()
@ -68,6 +68,7 @@ class LogTestCase(BaseTestCase):
def test_it_shows_webhook_notifications(self): def test_it_shows_webhook_notifications(self):
ch = Channel(kind="webhook", user=self.alice, value="foo/$NAME") ch = Channel(kind="webhook", user=self.alice, value="foo/$NAME")
ch.project = self.project
ch.save() ch.save()
Notification(owner=self.check, channel=ch, check_status="down").save() Notification(owner=self.check, channel=ch, check_status="down").save()

View File

@ -9,6 +9,7 @@ class MyChecksTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(MyChecksTestCase, self).setUp() super(MyChecksTestCase, self).setUp()
self.check = Check(user=self.alice, name="Alice Was Here") self.check = Check(user=self.alice, name="Alice Was Here")
self.check.project = self.project
self.check.save() self.check.save()
def test_it_works(self): def test_it_works(self):

View File

@ -9,7 +9,7 @@ class PauseTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(PauseTestCase, self).setUp() super(PauseTestCase, self).setUp()
self.check = Check(user=self.alice, status="up") self.check = Check(user=self.alice, status="up", project=self.project)
self.check.save() self.check.save()
self.url = "/checks/%s/pause/" % self.check.code self.url = "/checks/%s/pause/" % self.check.code

View File

@ -5,7 +5,7 @@ from hc.test import BaseTestCase
class LastPingTestCase(BaseTestCase): class LastPingTestCase(BaseTestCase):
def test_it_works(self): def test_it_works(self):
check = Check(user=self.alice) check = Check(user=self.alice, project=self.project)
check.save() check.save()
Ping.objects.create(owner=check, body="this is body") Ping.objects.create(owner=check, body="this is body")
@ -15,7 +15,7 @@ class LastPingTestCase(BaseTestCase):
self.assertContains(r, "this is body", status_code=200) self.assertContains(r, "this is body", status_code=200)
def test_it_shows_fail(self): def test_it_shows_fail(self):
check = Check(user=self.alice) check = Check(user=self.alice, project=self.project)
check.save() check.save()
Ping.objects.create(owner=check, kind="fail") Ping.objects.create(owner=check, kind="fail")
@ -25,7 +25,7 @@ class LastPingTestCase(BaseTestCase):
self.assertContains(r, "/fail", status_code=200) self.assertContains(r, "/fail", status_code=200)
def test_it_shows_start(self): def test_it_shows_start(self):
check = Check(user=self.alice) check = Check(user=self.alice, project=self.project)
check.save() check.save()
Ping.objects.create(owner=check, kind="start") Ping.objects.create(owner=check, kind="start")
@ -35,7 +35,7 @@ class LastPingTestCase(BaseTestCase):
self.assertContains(r, "/start", status_code=200) self.assertContains(r, "/start", status_code=200)
def test_it_accepts_n(self): def test_it_accepts_n(self):
check = Check(user=self.alice) check = Check(user=self.alice, project=self.project)
check.save() check.save()
# remote_addr, scheme, method, ua, body: # remote_addr, scheme, method, ua, body:
@ -54,7 +54,7 @@ class LastPingTestCase(BaseTestCase):
self.bobs_profile.current_team = None self.bobs_profile.current_team = None
self.bobs_profile.save() self.bobs_profile.save()
check = Check(user=self.alice) check = Check(user=self.alice, project=self.project)
check.save() check.save()
Ping.objects.create(owner=check, body="this is body") Ping.objects.create(owner=check, body="this is body")

View File

@ -7,6 +7,7 @@ class RemoveChannelTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(RemoveChannelTestCase, self).setUp() super(RemoveChannelTestCase, self).setUp()
self.channel = Channel(user=self.alice, kind="email") self.channel = Channel(user=self.alice, kind="email")
self.channel.project = self.project
self.channel.value = "alice@example.org" self.channel.value = "alice@example.org"
self.channel.save() self.channel.save()

View File

@ -6,7 +6,7 @@ class RemoveCheckTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(RemoveCheckTestCase, self).setUp() super(RemoveCheckTestCase, self).setUp()
self.check = Check(user=self.alice) self.check = Check(user=self.alice, project=self.project)
self.check.save() self.check.save()
self.remove_url = "/checks/%s/remove/" % self.check.code self.remove_url = "/checks/%s/remove/" % self.check.code

View File

@ -7,6 +7,7 @@ class MyChecksTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(MyChecksTestCase, self).setUp() super(MyChecksTestCase, self).setUp()
self.check = Check(user=self.alice, name="Alice Was Here") self.check = Check(user=self.alice, name="Alice Was Here")
self.check.project = self.project
self.check.tags = "foo" self.check.tags = "foo"
self.check.save() self.check.save()

View File

@ -7,6 +7,7 @@ class StatusSingleTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(StatusSingleTestCase, self).setUp() super(StatusSingleTestCase, self).setUp()
self.check = Check(user=self.alice, name="Alice Was Here") self.check = Check(user=self.alice, name="Alice Was Here")
self.check.project = self.project
self.check.save() self.check.save()
def test_it_works(self): def test_it_works(self):

View File

@ -1,3 +1,4 @@
from hc.accounts.models import Project
from hc.api.models import Channel, Check from hc.api.models import Channel, Check
from hc.test import BaseTestCase from hc.test import BaseTestCase
@ -6,10 +7,11 @@ class SwitchChannelTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(SwitchChannelTestCase, self).setUp() super(SwitchChannelTestCase, self).setUp()
self.check = Check(user=self.alice) self.check = Check(user=self.alice, project=self.project)
self.check.save() self.check.save()
self.channel = Channel(user=self.alice, kind="email") self.channel = Channel(user=self.alice, kind="email")
self.channel.project = self.project
self.channel.value = "alice@example.org" self.channel.value = "alice@example.org"
self.channel.save() self.channel.save()
@ -35,7 +37,8 @@ class SwitchChannelTestCase(BaseTestCase):
self.assertEqual(r.status_code, 404) self.assertEqual(r.status_code, 404)
def test_it_checks_channels_ownership(self): def test_it_checks_channels_ownership(self):
cc = Check(user=self.charlie) charlies_project = Project.objects.create(owner=self.charlie)
cc = Check(user=self.charlie, project=charlies_project)
cc.save() cc.save()
# Charlie will try to assign Alice's channel to his check: # Charlie will try to assign Alice's channel to his check:

View File

@ -7,6 +7,7 @@ class UnsubscribeEmailTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(UnsubscribeEmailTestCase, self).setUp() super(UnsubscribeEmailTestCase, self).setUp()
self.channel = Channel(user=self.alice, kind="email") self.channel = Channel(user=self.alice, kind="email")
self.channel.project = self.project
self.channel.value = "alice@example.org" self.channel.value = "alice@example.org"
self.channel.save() self.channel.save()

View File

@ -1,3 +1,4 @@
from hc.accounts.models import Project
from hc.api.models import Channel, Check from hc.api.models import Channel, Check
from hc.test import BaseTestCase from hc.test import BaseTestCase
@ -6,10 +7,11 @@ class UpdateChannelTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(UpdateChannelTestCase, self).setUp() super(UpdateChannelTestCase, self).setUp()
self.check = Check(user=self.alice) self.check = Check(user=self.alice, project=self.project)
self.check.save() self.check.save()
self.channel = Channel(user=self.alice, kind="email") self.channel = Channel(user=self.alice, kind="email")
self.channel.project = self.project
self.channel.email = "alice@example.org" self.channel.email = "alice@example.org"
self.channel.save() self.channel.save()
@ -50,7 +52,9 @@ class UpdateChannelTestCase(BaseTestCase):
assert r.status_code == 403 assert r.status_code == 403
def test_it_checks_check_user(self): def test_it_checks_check_user(self):
charlies_project = Project.objects.create(owner=self.charlie)
charlies_channel = Channel(user=self.charlie, kind="email") charlies_channel = Channel(user=self.charlie, kind="email")
charlies_channel.project = charlies_project
charlies_channel.email = "charlie@example.org" charlies_channel.email = "charlie@example.org"
charlies_channel.save() charlies_channel.save()

View File

@ -7,6 +7,7 @@ class UpdateChannelNameTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(UpdateChannelNameTestCase, self).setUp() super(UpdateChannelNameTestCase, self).setUp()
self.channel = Channel(kind="email", user=self.alice) self.channel = Channel(kind="email", user=self.alice)
self.channel.project = self.project
self.channel.save() self.channel.save()
self.url = "/integrations/%s/name/" % self.channel.code self.url = "/integrations/%s/name/" % self.channel.code

View File

@ -6,7 +6,7 @@ class UpdateNameTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(UpdateNameTestCase, self).setUp() super(UpdateNameTestCase, self).setUp()
self.check = Check(user=self.alice) self.check = Check(user=self.alice, project=self.project)
self.check.save() self.check.save()
self.url = "/checks/%s/name/" % self.check.code self.url = "/checks/%s/name/" % self.check.code

View File

@ -9,7 +9,7 @@ class UpdateTimeoutTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(UpdateTimeoutTestCase, self).setUp() super(UpdateTimeoutTestCase, self).setUp()
self.check = Check(user=self.alice, status="up") self.check = Check(user=self.alice, status="up", project=self.project)
self.check.last_ping = timezone.now() self.check.last_ping = timezone.now()
self.check.save() self.check.save()

View File

@ -7,6 +7,7 @@ class VerifyEmailTestCase(BaseTestCase):
def setUp(self): def setUp(self):
super(VerifyEmailTestCase, self).setUp() super(VerifyEmailTestCase, self).setUp()
self.channel = Channel(user=self.alice, kind="email") self.channel = Channel(user=self.alice, kind="email")
self.channel.project = self.project
self.channel.value = "alice@example.org" self.channel.value = "alice@example.org"
self.channel.save() self.channel.save()