From 738b9e8f58770e81b1da1c5487ff41c7758ff2ac Mon Sep 17 00:00:00 2001 From: half-ogre Date: Wed, 9 Oct 2013 13:27:38 -0700 Subject: [PATCH] move automation credential to test helper This is in preparation for adding much more to this test helper. --- Octokit.Tests.Integration/Helper.cs | 25 +++++++++ .../IntegrationTestAttribute.cs | 2 +- .../MiscellaneousClientTests.cs | 4 +- .../Octokit.Tests.Integration.csproj | 2 +- .../ReleasesClientTests.cs | 2 +- .../RepositoriesClientTests.cs | 54 +++++++++---------- Octokit.Tests.Integration/UsersClientTests.cs | 16 +++--- 7 files changed, 65 insertions(+), 40 deletions(-) create mode 100644 Octokit.Tests.Integration/Helper.cs diff --git a/Octokit.Tests.Integration/Helper.cs b/Octokit.Tests.Integration/Helper.cs new file mode 100644 index 00000000..92d039f8 --- /dev/null +++ b/Octokit.Tests.Integration/Helper.cs @@ -0,0 +1,25 @@ +using System; + +namespace Octokit.Tests.Integration +{ + public static class Helper + { + static readonly Lazy _credentialsThunk = new Lazy(() => + { + var githubUsername = Environment.GetEnvironmentVariable("OCTOKIT_GITHUBUSERNAME"); + var githubPassword = Environment.GetEnvironmentVariable("OCTOKIT_GITHUBPASSWORD"); + + if (githubUsername == null || githubPassword == null) + return null; + + return new Credentials(githubUsername, githubPassword); + }); + + public static Credentials Credentials { get { return _credentialsThunk.Value; }} + + public static string MakeNameWithTimestamp(string name) + { + return string.Concat(name, "-", DateTime.UtcNow.ToString("yyyyMMddhhmmssfff")); + } + } +} diff --git a/Octokit.Tests.Integration/IntegrationTestAttribute.cs b/Octokit.Tests.Integration/IntegrationTestAttribute.cs index a86d957a..3e0a28ed 100644 --- a/Octokit.Tests.Integration/IntegrationTestAttribute.cs +++ b/Octokit.Tests.Integration/IntegrationTestAttribute.cs @@ -8,7 +8,7 @@ namespace Octokit.Tests.Integration { protected override IEnumerable EnumerateTestCommands(IMethodInfo testMethod) { - if (AutomationSettings.Current.GitHubCredentials == null) + if (Helper.Credentials == null) yield return new SkipCommand(testMethod, MethodUtility.GetDisplayName(testMethod), "Automation settings not configured. Please set the OCTOKIT_GITHUBUSERNAME and OCTOKIT_GITHUBPASSWORD environment variables to a GitHub test account (i.e, DO NOT USE A \"REAL\" ACCOUNT)."); else yield return new FactCommand(testMethod); diff --git a/Octokit.Tests.Integration/MiscellaneousClientTests.cs b/Octokit.Tests.Integration/MiscellaneousClientTests.cs index 932917d7..ae13ee58 100644 --- a/Octokit.Tests.Integration/MiscellaneousClientTests.cs +++ b/Octokit.Tests.Integration/MiscellaneousClientTests.cs @@ -12,7 +12,7 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Octokit Test Runner") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; var emojis = await github.Miscellaneous.GetEmojis(); @@ -28,7 +28,7 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; var result = await github.Miscellaneous.RenderRawMarkdown("This is a **test**"); diff --git a/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj b/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj index 7ea68239..ca6158b1 100644 --- a/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj +++ b/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj @@ -55,12 +55,12 @@ - + diff --git a/Octokit.Tests.Integration/ReleasesClientTests.cs b/Octokit.Tests.Integration/ReleasesClientTests.cs index e5ecfcc1..19c535e9 100644 --- a/Octokit.Tests.Integration/ReleasesClientTests.cs +++ b/Octokit.Tests.Integration/ReleasesClientTests.cs @@ -13,7 +13,7 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; var releases = await github.Release.GetAll("git-tfs", "git-tfs"); diff --git a/Octokit.Tests.Integration/RepositoriesClientTests.cs b/Octokit.Tests.Integration/RepositoriesClientTests.cs index 209a8467..d1fba7a1 100644 --- a/Octokit.Tests.Integration/RepositoriesClientTests.cs +++ b/Octokit.Tests.Integration/RepositoriesClientTests.cs @@ -12,9 +12,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("public-repo"); + var repoName = Helper.MakeNameWithTimestamp("public-repo"); var createdRepository = await github.Repository.Create(new NewRepository { Name = repoName }); @@ -37,9 +37,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("private-repo"); + var repoName = Helper.MakeNameWithTimestamp("private-repo"); var createdRepository = await github.Repository.Create(new NewRepository { @@ -57,9 +57,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("repo-without-downloads"); + var repoName = Helper.MakeNameWithTimestamp("repo-without-downloads"); var createdRepository = await github.Repository.Create(new NewRepository { @@ -77,9 +77,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("repo-without-issues"); + var repoName = Helper.MakeNameWithTimestamp("repo-without-issues"); var createdRepository = await github.Repository.Create(new NewRepository { @@ -97,9 +97,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("repo-without-wiki"); + var repoName = Helper.MakeNameWithTimestamp("repo-without-wiki"); var createdRepository = await github.Repository.Create(new NewRepository { @@ -117,9 +117,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("repo-with-description"); + var repoName = Helper.MakeNameWithTimestamp("repo-with-description"); var createdRepository = await github.Repository.Create(new NewRepository { @@ -137,9 +137,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("repo-with-homepage"); + var repoName = Helper.MakeNameWithTimestamp("repo-with-homepage"); var createdRepository = await github.Repository.Create(new NewRepository { @@ -157,9 +157,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("repo-with-autoinit"); + var repoName = Helper.MakeNameWithTimestamp("repo-with-autoinit"); var createdRepository = await github.Repository.Create(new NewRepository { @@ -178,9 +178,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("repo-with-gitignore"); + var repoName = Helper.MakeNameWithTimestamp("repo-with-gitignore"); var createdRepository = await github.Repository.Create(new NewRepository { @@ -203,9 +203,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("public-org-repo"); + var repoName = Helper.MakeNameWithTimestamp("public-org-repo"); var orgLogin = github.Credentials.Login + "-org"; // TODO: Create the org as part of the test @@ -235,9 +235,9 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Octokit Test Runner") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; - var repoName = AutomationSettings.MakeNameWithTimestamp("repo-to-delete"); + var repoName = Helper.MakeNameWithTimestamp("repo-to-delete"); await github.Repository.Create(new NewRepository { Name = repoName }); Assert.DoesNotThrow(async () => { await github.Repository.Delete(github.Credentials.Login, repoName); }); @@ -251,7 +251,7 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Octokit Test Runner") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; var repository = await github.Repository.Get("haacked", "seegit"); @@ -266,7 +266,7 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; var repository = await github.Repository.Get("haacked", "libgit2sharp"); @@ -283,7 +283,7 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Octokit Test Runner") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; var repositories = await github.Repository.GetAllForOrg("github"); @@ -299,7 +299,7 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Octokit Test Runner") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; // TODO: Change this to request github/Octokit.net once we make this OSS. @@ -315,7 +315,7 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Octokit Test Runner") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; // TODO: Change this to request github/Octokit.net once we make this OSS. diff --git a/Octokit.Tests.Integration/UsersClientTests.cs b/Octokit.Tests.Integration/UsersClientTests.cs index 5408a295..705ddd21 100644 --- a/Octokit.Tests.Integration/UsersClientTests.cs +++ b/Octokit.Tests.Integration/UsersClientTests.cs @@ -16,7 +16,7 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Octokit Test Runner") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; // Get a user by username @@ -40,7 +40,7 @@ namespace Octokit.Tests.Integration { public async Task GetCredentials() { - return await Observable.Return(AutomationSettings.Current.GitHubCredentials); + return await Observable.Return(Helper.Credentials); } } } @@ -52,12 +52,12 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Octokit Test Runner") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; var user = await github.User.Current(); - Assert.Equal(AutomationSettings.Current.GitHubUsername, user.Login); + Assert.Equal(Helper.Credentials.Login, user.Login); } } @@ -69,7 +69,7 @@ namespace Octokit.Tests.Integration var github = new GitHubClient("Octokit Test Runner"); var userUpdate = new UserUpdate { - Name = AutomationSettings.Current.GitHubUsername, + Name = Helper.Credentials.Login, Bio = "UPDATED BIO" }; @@ -83,11 +83,11 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Octokit Test Runner") { - Credentials = new Credentials(AutomationSettings.Current.GitHubUsername, "bad-password") + Credentials = new Credentials(Helper.Credentials.Login, "bad-password") }; var userUpdate = new UserUpdate { - Name = AutomationSettings.Current.GitHubUsername, + Name = Helper.Credentials.Login, Bio = "UPDATED BIO" }; @@ -103,7 +103,7 @@ namespace Octokit.Tests.Integration { var github = new GitHubClient("Test Runner User Agent") { - Credentials = AutomationSettings.Current.GitHubCredentials + Credentials = Helper.Credentials }; var emails = await github.User.GetEmails();