Add check for build_environment flag in updateReservedListCommand and updatePremiumListCommand (#2317)

* Add check for build_environment flag in updateReservedListCommand

* Do the same for premium list
This commit is contained in:
sarahcaseybot 2024-02-02 16:43:45 -05:00 committed by GitHub
parent d1d59c1afd
commit e492936cec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 77 additions and 81 deletions

View file

@ -48,11 +48,9 @@ class UpdatePremiumListCommand extends CreateOrUpdatePremiumListCommand {
@Override
protected String prompt() throws Exception {
// TODO(sarahbot): uncomment once go/r3pr/2292 is deployed
// checkArgument(
// !RegistryToolEnvironment.get().equals(RegistryToolEnvironment.PRODUCTION) || buildEnv,
// "The --build_environment flag must be used when running update_premium_list in
// production");
checkArgument(
!RegistryToolEnvironment.get().equals(RegistryToolEnvironment.PRODUCTION) || buildEnv,
"The --build_environment flag must be used when running update_premium_list in production");
name = Strings.isNullOrEmpty(name) ? convertFilePathToName(inputFile) : name;
PremiumList existingList =
PremiumListDao.getLatestRevision(name)

View file

@ -14,6 +14,7 @@
package google.registry.tools;
import static com.google.common.base.Preconditions.checkArgument;
import static google.registry.util.DiffUtils.prettyPrintEntityDeepDiff;
import static google.registry.util.ListNamingUtils.convertFilePathToName;
import static java.nio.charset.StandardCharsets.UTF_8;
@ -47,11 +48,10 @@ final class UpdateReservedListCommand extends CreateOrUpdateReservedListCommand
@Override
protected String prompt() throws Exception {
// TODO(sarahbot): uncomment once go/r3pr/2292 is deployed
// checkArgument(
// !RegistryToolEnvironment.get().equals(RegistryToolEnvironment.PRODUCTION) || buildEnv,
// "The --build_environment flag must be used when running update_reserved_list in"
// + " production");
checkArgument(
!RegistryToolEnvironment.get().equals(RegistryToolEnvironment.PRODUCTION) || buildEnv,
"The --build_environment flag must be used when running update_reserved_list in"
+ " production");
name = Strings.isNullOrEmpty(name) ? convertFilePathToName(input) : name;
ReservedList existingReservedList =
ReservedList.get(name)

View file

@ -206,39 +206,38 @@ class UpdatePremiumListCommandTest<C extends UpdatePremiumListCommand>
.containsExactly(PremiumEntry.create(0L, new BigDecimal("9090.00"), "doge"));
}
// TODO(sarahbot): uncomment once go/r3pr/2292 is deployed
// @Test
// void testFailure_runCommandOnProduction_noFlag() throws Exception {
// File tmpFile = tmpDir.resolve(String.format("%s.txt", TLD_TEST)).toFile();
// String newPremiumListData = "eth,USD 9999";
// Files.asCharSink(tmpFile, UTF_8).write(newPremiumListData);
// IllegalArgumentException thrown =
// assertThrows(
// IllegalArgumentException.class,
// () ->
// runCommandInEnvironment(
// RegistryToolEnvironment.PRODUCTION,
// "--name=" + TLD_TEST,
// "--input=" + Paths.get(tmpFile.getPath())));
// assertThat(thrown.getMessage())
// .isEqualTo(
// "The --build_environment flag must be used when running update_premium_list in"
// + " production");
// }
//
// @Test
// void testSuccess_runCommandOnProduction_buildEnvFlag() throws Exception {
// File tmpFile = tmpDir.resolve(String.format("%s.txt", TLD_TEST)).toFile();
// String newPremiumListData = "eth,USD 9999";
// Files.asCharSink(tmpFile, UTF_8).write(newPremiumListData);
// runCommandInEnvironment(
// RegistryToolEnvironment.PRODUCTION,
// "--name=" + TLD_TEST,
// "--input=" + Paths.get(tmpFile.getPath()),
// "--build_environment",
// "-f");
// assertThat(PremiumListDao.loadAllPremiumEntries(TLD_TEST))
// .comparingElementsUsing(immutableObjectCorrespondence("revisionId"))
// .containsExactly(PremiumEntry.create(0L, new BigDecimal("9999.00"), "eth"));
// }
@Test
void testFailure_runCommandOnProduction_noFlag() throws Exception {
File tmpFile = tmpDir.resolve(String.format("%s.txt", TLD_TEST)).toFile();
String newPremiumListData = "eth,USD 9999";
Files.asCharSink(tmpFile, UTF_8).write(newPremiumListData);
IllegalArgumentException thrown =
assertThrows(
IllegalArgumentException.class,
() ->
runCommandInEnvironment(
RegistryToolEnvironment.PRODUCTION,
"--name=" + TLD_TEST,
"--input=" + Paths.get(tmpFile.getPath())));
assertThat(thrown.getMessage())
.isEqualTo(
"The --build_environment flag must be used when running update_premium_list in"
+ " production");
}
@Test
void testSuccess_runCommandOnProduction_buildEnvFlag() throws Exception {
File tmpFile = tmpDir.resolve(String.format("%s.txt", TLD_TEST)).toFile();
String newPremiumListData = "eth,USD 9999";
Files.asCharSink(tmpFile, UTF_8).write(newPremiumListData);
runCommandInEnvironment(
RegistryToolEnvironment.PRODUCTION,
"--name=" + TLD_TEST,
"--input=" + Paths.get(tmpFile.getPath()),
"--build_environment",
"-f");
assertThat(PremiumListDao.loadAllPremiumEntries(TLD_TEST))
.comparingElementsUsing(immutableObjectCorrespondence("revisionId"))
.containsExactly(PremiumEntry.create(0L, new BigDecimal("9999.00"), "eth"));
}
}

View file

@ -153,40 +153,39 @@ class UpdateReservedListCommandTest
assertThat(reservedList.getReservationInList("helicopter")).hasValue(FULLY_BLOCKED);
}
// TODO(sarahbot): uncomment once go/r3pr/2292 is deployed
// @Test
// void testFailure_runCommandOnProduction_noFlag() throws Exception {
// IllegalArgumentException thrown =
// assertThrows(
// IllegalArgumentException.class,
// () ->
// runCommandInEnvironment(
// RegistryToolEnvironment.PRODUCTION,
// "--name=xn--q9jyb4c_common-reserved",
// "--input=" + reservedTermsPath));
// assertThat(thrown.getMessage())
// .isEqualTo(
// "The --build_environment flag must be used when running update_reserved_list in"
// + " production");
// }
//
// @Test
// void testSuccess_runCommandOnProduction_buildEnvFlag() throws Exception {
// runCommandInEnvironment(
// RegistryToolEnvironment.PRODUCTION,
// "--name=xn--q9jyb4c_common-reserved",
// "--input=" + reservedTermsPath,
// "--build_environment",
// "-f");
// assertThat(ReservedList.get("xn--q9jyb4c_common-reserved")).isPresent();
// ReservedList reservedList = ReservedList.get("xn--q9jyb4c_common-reserved").get();
// assertThat(reservedList.getReservedListEntries()).hasSize(2);
// assertThat(reservedList.getReservationInList("baddies")).hasValue(FULLY_BLOCKED);
// assertThat(reservedList.getReservationInList("ford")).hasValue(FULLY_BLOCKED);
// assertThat(reservedList.getReservationInList("helicopter")).isEmpty();
// assertInStdout("Update reserved list for xn--q9jyb4c_common-reserved?");
// assertInStdout("helicopter: helicopter,FULLY_BLOCKED -> null");
// assertInStdout("baddies: null -> baddies,FULLY_BLOCKED");
// assertInStdout("ford: null -> ford,FULLY_BLOCKED # random comment");
// }
@Test
void testFailure_runCommandOnProduction_noFlag() throws Exception {
IllegalArgumentException thrown =
assertThrows(
IllegalArgumentException.class,
() ->
runCommandInEnvironment(
RegistryToolEnvironment.PRODUCTION,
"--name=xn--q9jyb4c_common-reserved",
"--input=" + reservedTermsPath));
assertThat(thrown.getMessage())
.isEqualTo(
"The --build_environment flag must be used when running update_reserved_list in"
+ " production");
}
@Test
void testSuccess_runCommandOnProduction_buildEnvFlag() throws Exception {
runCommandInEnvironment(
RegistryToolEnvironment.PRODUCTION,
"--name=xn--q9jyb4c_common-reserved",
"--input=" + reservedTermsPath,
"--build_environment",
"-f");
assertThat(ReservedList.get("xn--q9jyb4c_common-reserved")).isPresent();
ReservedList reservedList = ReservedList.get("xn--q9jyb4c_common-reserved").get();
assertThat(reservedList.getReservedListEntries()).hasSize(2);
assertThat(reservedList.getReservationInList("baddies")).hasValue(FULLY_BLOCKED);
assertThat(reservedList.getReservationInList("ford")).hasValue(FULLY_BLOCKED);
assertThat(reservedList.getReservationInList("helicopter")).isEmpty();
assertInStdout("Update reserved list for xn--q9jyb4c_common-reserved?");
assertInStdout("helicopter: helicopter,FULLY_BLOCKED -> null");
assertInStdout("baddies: null -> baddies,FULLY_BLOCKED");
assertInStdout("ford: null -> ford,FULLY_BLOCKED # random comment");
}
}