diff --git a/sitewide/test/userupdates_test.py b/sitewide/test/userupdates_test.py
index 725b123..d024755 100644
--- a/sitewide/test/userupdates_test.py
+++ b/sitewide/test/userupdates_test.py
@@ -1,7 +1,6 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file or at
-# https://developers.google.com/open-source/licenses/bsd
+# Copyright 2016 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 
 """Unittests for monorail.sitewide.userupdates."""
 from __future__ import print_function
@@ -47,7 +46,7 @@
     self.mox.ResetAll()
 
   def testUserUpdatesProjects(self):
-    uup = userupdates.UserUpdatesProjects(None, None, self.services)
+    uup = userupdates.UserUpdatesProjects(self.services)
 
     self.mox.StubOutWithMock(sitewide_helpers, 'GetViewableStarredProjects')
     sitewide_helpers.GetViewableStarredProjects(
@@ -73,7 +72,7 @@
     self.assertEqual(uup._TAB_MODE, page_data['user_updates_tab_mode'])
 
   def testUserUpdatesDevelopers(self):
-    uud = userupdates.UserUpdatesDevelopers(None, None, self.services)
+    uud = userupdates.UserUpdatesDevelopers(self.services)
 
     self.mox.StubOutWithMock(self.services.user_star, 'LookupStarredItemIDs')
     self.services.user_star.LookupStarredItemIDs(
@@ -97,7 +96,7 @@
     self.assertEqual(uud._TAB_MODE, page_data['user_updates_tab_mode'])
 
   def testUserUpdatesIndividual(self):
-    uui = userupdates.UserUpdatesIndividual(None, None, self.services)
+    uui = userupdates.UserUpdatesIndividual(self.services)
 
     self.mox.StubOutWithMock(activities, 'GatherUpdatesData')
     activities.GatherUpdatesData(
