[PATCH] testbot: Standardize and clean up the Collections initialization.

Francois Gouget fgouget at codeweavers.com
Wed Mar 21 20:03:16 CDT 2018


@PropertyDescriptors does not need to be exported and it does not need
to be initialized in a BEGIN block.
Add documentation for the CreateXxx() functions.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 testbot/lib/WineTestBot/Branches.pm         | 25 +++++++++-----
 testbot/lib/WineTestBot/CGI/Sessions.pm     | 40 +++++++++++++---------
 testbot/lib/WineTestBot/Jobs.pm             | 44 ++++++++++++++-----------
 testbot/lib/WineTestBot/Patches.pm          | 51 ++++++++++++++++-------------
 testbot/lib/WineTestBot/PendingPatchSets.pm | 40 ++++++++++++----------
 testbot/lib/WineTestBot/PendingPatches.pm   | 28 +++++++++++-----
 testbot/lib/WineTestBot/RecordGroups.pm     | 27 +++++++++------
 testbot/lib/WineTestBot/Records.pm          | 32 +++++++++---------
 testbot/lib/WineTestBot/Roles.pm            | 24 +++++++++-----
 testbot/lib/WineTestBot/Steps.pm            | 44 ++++++++++++++++---------
 testbot/lib/WineTestBot/StepsTasks.pm       | 37 ++++++++++-----------
 testbot/lib/WineTestBot/Tasks.pm            | 36 ++++++++++++--------
 testbot/lib/WineTestBot/UserRoles.pm        | 24 +++++++++-----
 testbot/lib/WineTestBot/Users.pm            | 34 +++++++++++--------
 testbot/lib/WineTestBot/VMs.pm              | 45 ++++++++++++++-----------
 15 files changed, 314 insertions(+), 217 deletions(-)

diff --git a/testbot/lib/WineTestBot/Branches.pm b/testbot/lib/WineTestBot/Branches.pm
index f5bd9d982..a67832590 100644
--- a/testbot/lib/WineTestBot/Branches.pm
+++ b/testbot/lib/WineTestBot/Branches.pm
@@ -53,7 +53,7 @@ WineTestBot::Branches - A collection of WineTestBot::Branch objects
 use ObjectModel::BasicPropertyDescriptor;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw (@ISA @EXPORT @PropertyDescriptors);
+use vars qw (@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
@@ -71,14 +71,6 @@ sub GetDefaultBranch($)
   return undef;
 }
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("Name",      "Branch name",          1,  1, "A", 20),
-    CreateBasicPropertyDescriptor("IsDefault", "Default branch",       !1,  1, "B",  1),
-  );
-}
-
 sub MultipleBranchesPresent($)
 {
   my ($self) = @_;
@@ -93,6 +85,21 @@ sub CreateItem($)
   return WineTestBot::Branch->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("Name",      "Branch name",     1,  1, "A", 20),
+  CreateBasicPropertyDescriptor("IsDefault", "Default branch", !1,  1, "B",  1),
+);
+
+=pod
+=over 12
+
+=item C<CreateBranches()>
+
+Creates a collection of Branch objects.
+
+=back
+=cut
+
 sub CreateBranches(;$)
 {
   my ($ScopeObject) = @_;
diff --git a/testbot/lib/WineTestBot/CGI/Sessions.pm b/testbot/lib/WineTestBot/CGI/Sessions.pm
index 4b1f6b3c4..87fd15fb2 100644
--- a/testbot/lib/WineTestBot/CGI/Sessions.pm
+++ b/testbot/lib/WineTestBot/CGI/Sessions.pm
@@ -61,20 +61,12 @@ use WineTestBot::Users;
 use WineTestBot::Utils;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw(@ISA @EXPORT @PropertyDescriptors);
+use vars qw(@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateSessions &DeleteSessions &NewSession);
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("Id",        "Session id",         1,  1, "A", 32),
-    CreateItemrefPropertyDescriptor("User",    "User",              !1,  1, \&CreateUsers, ["UserName"]),
-    CreateBasicPropertyDescriptor("Permanent", "Permanent session", !1,  1, "B",  1),
-  );
-}
 
 sub CreateItem($)
 {
@@ -83,6 +75,29 @@ sub CreateItem($)
   return WineTestBot::CGI::Session->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("Id",        "Session id",         1,  1, "A", 32),
+  CreateItemrefPropertyDescriptor("User",    "User",              !1,  1, \&CreateUsers, ["UserName"]),
+  CreateBasicPropertyDescriptor("Permanent", "Permanent session", !1,  1, "B",  1),
+);
+
+=pod
+=over 12
+
+=item C<CreateSessions()>
+
+Creates a collection of Session objects.
+
+=back
+=cut
+
+sub CreateSessions(;$)
+{
+  my ($ScopeObject) = @_;
+  return WineTestBot::CGI::Sessions->new("Sessions", "Sessions", "Session",
+                                         \@PropertyDescriptors, $ScopeObject);
+}
+
 sub DeleteNonPermanentSessions($)
 {
   my ($User) = @_;
@@ -129,11 +144,4 @@ sub NewSession($$$)
   return ($ErrMessage, $Session);
 }
 
-sub CreateSessions(;$)
-{
-  my ($ScopeObject) = @_;
-  return WineTestBot::CGI::Sessions->new("Sessions", "Sessions", "Session",
-                                         \@PropertyDescriptors, $ScopeObject);
-}
-
 1;
diff --git a/testbot/lib/WineTestBot/Jobs.pm b/testbot/lib/WineTestBot/Jobs.pm
index 1d0f8bb8f..bcbcae91f 100644
--- a/testbot/lib/WineTestBot/Jobs.pm
+++ b/testbot/lib/WineTestBot/Jobs.pm
@@ -404,30 +404,12 @@ use WineTestBot::Steps;
 use WineTestBot::Users;
 use WineTestBot::VMs;
 
-use vars qw(@ISA @EXPORT @PropertyDescriptors);
+use vars qw(@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateJobs &ScheduleJobs &CheckJobs);
 
-my @PropertyDescriptors;
-
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("Id", "Job id", 1, 1, "S",  5),
-    CreateBasicPropertyDescriptor("Archived", "Job is archived", !1, 1, "B", 1),
-    CreateItemrefPropertyDescriptor("Branch", "Branch", !1, 1, \&CreateBranches, ["BranchName"]),
-    CreateItemrefPropertyDescriptor("User", "Author", !1, 1, \&WineTestBot::Users::CreateUsers, ["UserName"]),
-    CreateBasicPropertyDescriptor("Priority", "Priority", !1, 1, "N", 1),
-    CreateEnumPropertyDescriptor("Status", "Status", !1, 1, ['queued', 'running', 'completed', 'badpatch', 'badbuild', 'boterror', 'canceled']),
-    CreateBasicPropertyDescriptor("Remarks", "Remarks", !1, !1, "A", 128),
-    CreateBasicPropertyDescriptor("Submitted", "Submitted", !1, !1, "DT", 19),
-    CreateBasicPropertyDescriptor("Ended", "Ended", !1, !1, "DT", 19),
-    CreateItemrefPropertyDescriptor("Patch", "Submitted from patch", !1, !1, \&WineTestBot::Patches::CreatePatches, ["PatchId"]),
-    CreateDetailrefPropertyDescriptor("Steps", "Steps", !1, !1, \&CreateSteps),
-  );
-}
 
 sub CreateItem($)
 {
@@ -436,6 +418,30 @@ sub CreateItem($)
   return WineTestBot::Job->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("Id", "Job id", 1, 1, "S",  5),
+  CreateBasicPropertyDescriptor("Archived", "Job is archived", !1, 1, "B", 1),
+  CreateItemrefPropertyDescriptor("Branch", "Branch", !1, 1, \&CreateBranches, ["BranchName"]),
+  CreateItemrefPropertyDescriptor("User", "Author", !1, 1, \&WineTestBot::Users::CreateUsers, ["UserName"]),
+  CreateBasicPropertyDescriptor("Priority", "Priority", !1, 1, "N", 1),
+  CreateEnumPropertyDescriptor("Status", "Status", !1, 1, ['queued', 'running', 'completed', 'badpatch', 'badbuild', 'boterror', 'canceled']),
+  CreateBasicPropertyDescriptor("Remarks", "Remarks", !1, !1, "A", 128),
+  CreateBasicPropertyDescriptor("Submitted", "Submitted", !1, !1, "DT", 19),
+  CreateBasicPropertyDescriptor("Ended", "Ended", !1, !1, "DT", 19),
+  CreateItemrefPropertyDescriptor("Patch", "Submitted from patch", !1, !1, \&WineTestBot::Patches::CreatePatches, ["PatchId"]),
+  CreateDetailrefPropertyDescriptor("Steps", "Steps", !1, !1, \&CreateSteps),
+);
+
+=pod
+=over 12
+
+=item C<CreateJobs()>
+
+Creates a collection of Job objects.
+
+=back
+=cut
+
 sub CreateJobs(;$)
 {
   my ($ScopeObject) = @_;
diff --git a/testbot/lib/WineTestBot/Patches.pm b/testbot/lib/WineTestBot/Patches.pm
index a1d963529..7906f1cb6 100644
--- a/testbot/lib/WineTestBot/Patches.pm
+++ b/testbot/lib/WineTestBot/Patches.pm
@@ -375,22 +375,6 @@ require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreatePatches);
 
-my @PropertyDescriptors;
-
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("Id", "Patch id", 1, 1, "S",  7),
-    CreateBasicPropertyDescriptor("WebPatchId", "Wine Web Patch id", !1, !1, "N",  7),
-    CreateBasicPropertyDescriptor("Received", "Received", !1, 1, "DT", 19),
-    CreateBasicPropertyDescriptor("AffectsTests", "Affects tests", !1, 1, "B", 1),
-    CreateBasicPropertyDescriptor("FromName", "Author", !1, !1, "A", 40),
-    CreateBasicPropertyDescriptor("FromEMail", "Author's email address", !1, !1, "A", 40),
-    CreateBasicPropertyDescriptor("Subject", "Subject", !1, !1, "A", 120),
-    CreateBasicPropertyDescriptor("MessageId", "Message id", !1, !1, "A", 256),
-    CreateBasicPropertyDescriptor("Disposition", "Disposition", !1, 1, "A", 40),
-  );
-}
 
 sub CreateItem($)
 {
@@ -399,6 +383,35 @@ sub CreateItem($)
   return WineTestBot::Patch->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("Id", "Patch id", 1, 1, "S",  7),
+  CreateBasicPropertyDescriptor("WebPatchId", "Wine Web Patch id", !1, !1, "N",  7),
+  CreateBasicPropertyDescriptor("Received", "Received", !1, 1, "DT", 19),
+  CreateBasicPropertyDescriptor("AffectsTests", "Affects tests", !1, 1, "B", 1),
+  CreateBasicPropertyDescriptor("FromName", "Author", !1, !1, "A", 40),
+  CreateBasicPropertyDescriptor("FromEMail", "Author's email address", !1, !1, "A", 40),
+  CreateBasicPropertyDescriptor("Subject", "Subject", !1, !1, "A", 120),
+  CreateBasicPropertyDescriptor("MessageId", "Message id", !1, !1, "A", 256),
+  CreateBasicPropertyDescriptor("Disposition", "Disposition", !1, 1, "A", 40),
+);
+
+=pod
+=over 12
+
+=item C<CreatePatches()>
+
+Creates a collection of Patch objects.
+
+=back
+=cut
+
+sub CreatePatches(;$)
+{
+  my ($ScopeObject) = @_;
+  return WineTestBot::Patches->new("Patches", "Patches", "Patch",
+                                   \@PropertyDescriptors, $ScopeObject);
+}
+
 sub IsPatch($$)
 {
   my ($self, $Body) = @_;
@@ -539,10 +552,4 @@ sub NewPatch($$$)
   return undef;
 }
 
-sub CreatePatches(;$)
-{
-  my ($ScopeObject) = @_;
-  return WineTestBot::Patches->new("Patches", "Patches", "Patch", \@PropertyDescriptors, $ScopeObject);
-}
-
 1;
diff --git a/testbot/lib/WineTestBot/PendingPatchSets.pm b/testbot/lib/WineTestBot/PendingPatchSets.pm
index 5aae58338..520fb653c 100644
--- a/testbot/lib/WineTestBot/PendingPatchSets.pm
+++ b/testbot/lib/WineTestBot/PendingPatchSets.pm
@@ -161,22 +161,12 @@ use WineTestBot::Patches;
 use WineTestBot::Utils;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw(@ISA @EXPORT @PropertyDescriptors);
+use vars qw(@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreatePendingPatchSets);
 
-my @PropertyDescriptors;
-
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("EMail", "EMail of series author", 1, 1, "A", 40),
-    CreateBasicPropertyDescriptor("TotalParts", "Expected number of parts in series", 1, 1, "N", 2),
-    CreateDetailrefPropertyDescriptor("Parts", "Parts received so far", !1, !1, \&CreatePendingPatches),
-  );
-}
 
 sub CreateItem($)
 {
@@ -185,6 +175,28 @@ sub CreateItem($)
   return WineTestBot::PendingPatchSet->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("EMail", "EMail of series author", 1, 1, "A", 40),
+  CreateBasicPropertyDescriptor("TotalParts", "Expected number of parts in series", 1, 1, "N", 2),
+  CreateDetailrefPropertyDescriptor("Parts", "Parts received so far", !1, !1, \&CreatePendingPatches),
+);
+
+=pod
+=over 12
+
+=item C<CreatePendingPatchSets()>
+
+Creates a collection of PendingPatchSet objects.
+
+=back
+=cut
+
+sub CreatePendingPatchSets(;$)
+{
+  my ($ScopeObject) = @_;
+  return WineTestBot::PendingPatchSets->new("PendingPatchSets", "PendingPatchSets", "PendingPatchSet", \@PropertyDescriptors, $ScopeObject);
+}
+
 =pod
 =over 12
 
@@ -323,10 +335,4 @@ sub CheckForCompleteSet($)
   return $ErrMessage;
 }
 
-sub CreatePendingPatchSets(;$)
-{
-  my ($ScopeObject) = @_;
-  return WineTestBot::PendingPatchSets->new("PendingPatchSets", "PendingPatchSets", "PendingPatchSet", \@PropertyDescriptors, $ScopeObject);
-}
-
 1;
diff --git a/testbot/lib/WineTestBot/PendingPatches.pm b/testbot/lib/WineTestBot/PendingPatches.pm
index d63ff7e7d..053f7123d 100644
--- a/testbot/lib/WineTestBot/PendingPatches.pm
+++ b/testbot/lib/WineTestBot/PendingPatches.pm
@@ -51,19 +51,12 @@ use ObjectModel::ItemrefPropertyDescriptor;
 use WineTestBot::Patches;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw(@ISA @EXPORT @PropertyDescriptors);
+use vars qw(@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreatePendingPatches);
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("No", "Part no", 1, 1, "N", 2),
-    CreateItemrefPropertyDescriptor("Patch", "Submitted via patch", !1, 1, \&WineTestBot::Patches::CreatePatches, ["PatchId"]),
-  );
-}
 
 sub CreateItem($)
 {
@@ -72,11 +65,28 @@ sub CreateItem($)
   return WineTestBot::PendingPatch->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("No", "Part no", 1, 1, "N", 2),
+  CreateItemrefPropertyDescriptor("Patch", "Submitted via patch", !1, 1, \&WineTestBot::Patches::CreatePatches, ["PatchId"]),
+);
+
+=pod
+=over 12
+
+=item C<CreatePendingPatches()>
+
+Creates a collection of PendingPatch objects.
+
+=back
+=cut
+
 sub CreatePendingPatches(;$$)
 {
   my ($ScopeObject, $PendingPatchSet) = @_;
 
-  return WineTestBot::PendingPatches->new("PendingPatches", "PendingPatches", "PendingPatch", \@PropertyDescriptors, $ScopeObject, $PendingPatchSet);
+  return WineTestBot::PendingPatches->new(
+      "PendingPatches", "PendingPatches", "PendingPatch",
+      \@PropertyDescriptors, $ScopeObject, $PendingPatchSet);
 }
 
 1;
diff --git a/testbot/lib/WineTestBot/RecordGroups.pm b/testbot/lib/WineTestBot/RecordGroups.pm
index dfa83aeac..49c1758a0 100644
--- a/testbot/lib/WineTestBot/RecordGroups.pm
+++ b/testbot/lib/WineTestBot/RecordGroups.pm
@@ -61,22 +61,13 @@ use ObjectModel::DetailrefPropertyDescriptor;
 use WineTestBot::WineTestBotObjects;
 use WineTestBot::Records;
 
-use vars qw (@ISA @EXPORT @PropertyDescriptors);
+use vars qw (@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateRecordGroups &CompareRecordGroups &SaveRecord);
 
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("Id",        "Group id",   1,  1, "S",  6),
-    CreateBasicPropertyDescriptor("Timestamp", "Timestamp", !1,  1, "DT", 19),
-    CreateDetailrefPropertyDescriptor("Records", "Records", !1, !1, \&CreateRecords),
-  );
-}
-
 sub CreateItem($)
 {
   my ($self) = @_;
@@ -84,6 +75,22 @@ sub CreateItem($)
   return WineTestBot::RecordGroup->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("Id",          "Group id",   1,  1, "S",  6),
+  CreateBasicPropertyDescriptor("Timestamp",   "Timestamp", !1,  1, "DT", 19),
+  CreateDetailrefPropertyDescriptor("Records", "Records",   !1, !1, \&CreateRecords),
+);
+
+=pod
+=over 12
+
+=item C<CreateRecordGroups()>
+
+Creates a collection of RecordGroup objects.
+
+=back
+=cut
+
 sub CreateRecordGroups(;$)
 {
   my ($ScopeObject) = @_;
diff --git a/testbot/lib/WineTestBot/Records.pm b/testbot/lib/WineTestBot/Records.pm
index 46cf1fe43..98d5ee7d9 100644
--- a/testbot/lib/WineTestBot/Records.pm
+++ b/testbot/lib/WineTestBot/Records.pm
@@ -66,26 +66,13 @@ use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::EnumPropertyDescriptor;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw (@ISA @EXPORT @PropertyDescriptors @FlatPropertyDescriptors);
+use vars qw (@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateRecords);
 
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateEnumPropertyDescriptor("Type",   "Type",   1,  1, ['engine', 'tasks', 'vmresult', 'vmstatus']),
-    CreateBasicPropertyDescriptor("Name",  "Name",   1,  1, "A", 96),
-    CreateBasicPropertyDescriptor("Value", "Value", !1, !1, "A", 64),
-  );
-  @FlatPropertyDescriptors = (
-    CreateBasicPropertyDescriptor("RecordGroupId", "Record group id", 1, 1, "S",  6),
-    @PropertyDescriptors
-  );
-}
-
 sub CreateItem($)
 {
   my ($self) = @_;
@@ -93,15 +80,26 @@ sub CreateItem($)
   return WineTestBot::Record->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateEnumPropertyDescriptor("Type",   "Type",   1,  1, ['engine', 'tasks', 'vmresult', 'vmstatus']),
+  CreateBasicPropertyDescriptor("Name",  "Name",   1,  1, "A", 96),
+  CreateBasicPropertyDescriptor("Value", "Value", !1, !1, "A", 64),
+);
+my @FlatPropertyDescriptors = (
+  CreateBasicPropertyDescriptor("RecordGroupId", "Group id", 1, 1, "S", 6),
+  @PropertyDescriptors
+);
+
 =pod
 =over 12
 
 =item C<CreateRecords()>
 
-Creates a collection containing the records of the specified RecordGroup. In
-this case the Record objects have no RecordGroupId property.
+When given a RecordGroup object returns a collection containing the
+corresponding records. In this case the Record objects don't store the key of
+their parent.
 
-If no RecordGroup is specified all the table records are returned and the
+If no RecordGroup object is specified all the table rows are returned and the
 Record objects have a RecordGroupId property.
 
 =back
diff --git a/testbot/lib/WineTestBot/Roles.pm b/testbot/lib/WineTestBot/Roles.pm
index eed13c301..a617ac14e 100644
--- a/testbot/lib/WineTestBot/Roles.pm
+++ b/testbot/lib/WineTestBot/Roles.pm
@@ -48,19 +48,12 @@ WineTestBot::Roles - A collection of WineTestBot::Role objects
 use ObjectModel::BasicPropertyDescriptor;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw (@ISA @EXPORT @PropertyDescriptors);
+use vars qw (@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateRoles);
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("Name", "Role name", 1,  1, "A", 20),
-    CreateBasicPropertyDescriptor("IsDefaultRole", "Should new users get this role by default", !1, 1, "B", 1),
-  );
-}
 
 sub CreateItem($)
 {
@@ -69,6 +62,21 @@ sub CreateItem($)
   return WineTestBot::Role->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("Name", "Role name", 1,  1, "A", 20),
+  CreateBasicPropertyDescriptor("IsDefaultRole", "Should new users get this role by default", !1, 1, "B", 1),
+);
+
+=pod
+=over 12
+
+=item C<CreateRoles()>
+
+Creates a collection of Role objects.
+
+=back
+=cut
+
 sub CreateRoles(;$)
 {
   my ($ScopeObject) = @_;
diff --git a/testbot/lib/WineTestBot/Steps.pm b/testbot/lib/WineTestBot/Steps.pm
index b8dbaecb8..f91b70e3f 100644
--- a/testbot/lib/WineTestBot/Steps.pm
+++ b/testbot/lib/WineTestBot/Steps.pm
@@ -190,27 +190,12 @@ use ObjectModel::DetailrefPropertyDescriptor;
 use WineTestBot::Tasks;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw(@ISA @EXPORT @PropertyDescriptors);
+use vars qw(@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateSteps);
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("No", "Step no",  1,  1, "N", 2),
-    CreateBasicPropertyDescriptor("PreviousNo", "Previous step", !1, !1, "N", 2),
-    CreateEnumPropertyDescriptor("Status", "Status",  !1,  1, ['queued', 'running', 'completed', 'badpatch', 'badbuild', 'boterror', 'canceled', 'skipped']),
-    CreateEnumPropertyDescriptor("Type", "Step type",  !1,  1, ['suite', 'single', 'build', 'reconfig']),
-    CreateBasicPropertyDescriptor("FileName", "File name",  !1,  1, "A", 100),
-    CreateEnumPropertyDescriptor("FileType", "File type",  !1,  1, ['exe32', 'exe64', 'patchdlls', 'patchprograms']),
-    CreateBasicPropertyDescriptor("InStaging", "File is in staging area", !1, 1, "B", 1),
-    CreateBasicPropertyDescriptor("DebugLevel", "Debug level (WINETEST_DEBUG)", !1, 1, "N", 2),
-    CreateBasicPropertyDescriptor("ReportSuccessfulTests", "Report successful tests (WINETEST_REPORT_SUCCESS)", !1, 1, "B", 1),
-    CreateDetailrefPropertyDescriptor("Tasks", "Tasks", !1, !1, \&CreateTasks),
-  );
-}
 
 sub CreateItem($)
 {
@@ -219,6 +204,33 @@ sub CreateItem($)
   return WineTestBot::Step->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("No", "Step no",  1,  1, "N", 2),
+  CreateBasicPropertyDescriptor("PreviousNo", "Previous step", !1, !1, "N", 2),
+  CreateEnumPropertyDescriptor("Status", "Status",  !1,  1, ['queued', 'running', 'completed', 'badpatch', 'badbuild', 'boterror', 'canceled', 'skipped']),
+  CreateEnumPropertyDescriptor("Type", "Step type",  !1,  1, ['suite', 'single', 'build', 'reconfig']),
+  CreateBasicPropertyDescriptor("FileName", "File name",  !1,  1, "A", 100),
+  CreateEnumPropertyDescriptor("FileType", "File type",  !1,  1, ['exe32', 'exe64', 'patchdlls', 'patchprograms']),
+  CreateBasicPropertyDescriptor("InStaging", "File is in staging area", !1, 1, "B", 1),
+  CreateBasicPropertyDescriptor("DebugLevel", "Debug level (WINETEST_DEBUG)", !1, 1, "N", 2),
+  CreateBasicPropertyDescriptor("ReportSuccessfulTests", "Report successful tests (WINETEST_REPORT_SUCCESS)", !1, 1, "B", 1),
+  CreateDetailrefPropertyDescriptor("Tasks", "Tasks", !1, !1, \&CreateTasks),
+);
+
+=pod
+=over 12
+
+=item C<CreateSteps()>
+
+Creates a collection containing the steps of the specified Job. In
+this case the Step objects don't store the key of their parent.
+
+If no Job is specified all the table rows are returned and the
+Step objects have a JobId property.
+
+=back
+=cut
+
 sub CreateSteps(;$$)
 {
   my ($ScopeObject, $Job) = @_;
diff --git a/testbot/lib/WineTestBot/StepsTasks.pm b/testbot/lib/WineTestBot/StepsTasks.pm
index 79216d4e1..aea4654f4 100644
--- a/testbot/lib/WineTestBot/StepsTasks.pm
+++ b/testbot/lib/WineTestBot/StepsTasks.pm
@@ -102,31 +102,12 @@ use WineTestBot::Tasks;
 use WineTestBot::VMs;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw(@ISA @EXPORT @PropertyDescriptors);
+use vars qw(@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateStepsTasks);
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("Id", "Id", 1,  1, "N", 4),
-    CreateBasicPropertyDescriptor("StepNo", "Step no", !1,  1, "N", 2),
-    CreateBasicPropertyDescriptor("TaskNo", "Task no", ! 1,  1, "N", 2),
-    CreateBasicPropertyDescriptor("Type", "Step type", !1, 1, "A", 6),
-    CreateBasicPropertyDescriptor("Status", "Status",  !1,  1, "A", 9),
-    CreateItemrefPropertyDescriptor("VM", "VM", !1,  1, \&CreateVMs, ["VMName"]),
-    CreateBasicPropertyDescriptor("Timeout", "Timeout", !1, 1, "N", 4),
-    CreateBasicPropertyDescriptor("FileName", "File name",  !1,  1, "A", 64),
-    CreateBasicPropertyDescriptor("FileType", "File Type",  !1,  1, "A", 64),
-    CreateBasicPropertyDescriptor("CmdLineArg", "Command line args", !1, !1, "A", 256),
-    CreateBasicPropertyDescriptor("Started", "Execution started", !1, !1, "DT", 19),
-    CreateBasicPropertyDescriptor("Ended", "Execution ended", !1, !1, "DT", 19),
-    CreateBasicPropertyDescriptor("TestFailures", "Number of test failures", !1, !1, "N", 5),
-   );
-}
-
 sub _initialize($$)
 {
   my ($self, $Job) = @_;
@@ -181,6 +162,22 @@ sub CreateItem($)
   return WineTestBot::StepTask->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("Id", "Id", 1,  1, "N", 4),
+  CreateBasicPropertyDescriptor("StepNo", "Step no", !1,  1, "N", 2),
+  CreateBasicPropertyDescriptor("TaskNo", "Task no", ! 1,  1, "N", 2),
+  CreateBasicPropertyDescriptor("Type", "Step type", !1, 1, "A", 6),
+  CreateBasicPropertyDescriptor("Status", "Status",  !1,  1, "A", 9),
+  CreateItemrefPropertyDescriptor("VM", "VM", !1,  1, \&CreateVMs, ["VMName"]),
+  CreateBasicPropertyDescriptor("Timeout", "Timeout", !1, 1, "N", 4),
+  CreateBasicPropertyDescriptor("FileName", "File name",  !1,  1, "A", 64),
+  CreateBasicPropertyDescriptor("FileType", "File Type",  !1,  1, "A", 64),
+  CreateBasicPropertyDescriptor("CmdLineArg", "Command line args", !1, !1, "A", 256),
+  CreateBasicPropertyDescriptor("Started", "Execution started", !1, !1, "DT", 19),
+  CreateBasicPropertyDescriptor("Ended", "Execution ended", !1, !1, "DT", 19),
+  CreateBasicPropertyDescriptor("TestFailures", "Number of test failures", !1, !1, "N", 5),
+);
+
 sub CreateStepsTasks(;$$)
 {
   my ($ScopeObject, $Job) = @_;
diff --git a/testbot/lib/WineTestBot/Tasks.pm b/testbot/lib/WineTestBot/Tasks.pm
index 373da5372..dcc222b52 100644
--- a/testbot/lib/WineTestBot/Tasks.pm
+++ b/testbot/lib/WineTestBot/Tasks.pm
@@ -209,25 +209,12 @@ use ObjectModel::ItemrefPropertyDescriptor;
 use WineTestBot::VMs;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw(@ISA @EXPORT @PropertyDescriptors);
+use vars qw(@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateTasks);
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("No", "Task no",  1,  1, "N", 2),
-    CreateEnumPropertyDescriptor("Status", "Status",  !1,  1, ['queued', 'running', 'completed', 'badpatch', 'badbuild', 'boterror', 'canceled', 'skipped']),
-    CreateItemrefPropertyDescriptor("VM", "VM", !1,  1, \&CreateVMs, ["VMName"]),
-    CreateBasicPropertyDescriptor("Timeout", "Timeout", !1, 1, "N", 4),
-    CreateBasicPropertyDescriptor("CmdLineArg", "Command line args", !1, !1, "A", 256),
-    CreateBasicPropertyDescriptor("Started", "Execution started", !1, !1, "DT", 19),
-    CreateBasicPropertyDescriptor("Ended", "Execution ended", !1, !1, "DT", 19),
-    CreateBasicPropertyDescriptor("TestFailures", "Number of test failures", !1, !1, "N", 6),
-  );
-}
 
 sub CreateItem($)
 {
@@ -236,6 +223,27 @@ sub CreateItem($)
   return WineTestBot::Task->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("No", "Task no",  1,  1, "N", 2),
+  CreateEnumPropertyDescriptor("Status", "Status",  !1,  1, ['queued', 'running', 'completed', 'badpatch', 'badbuild', 'boterror', 'canceled', 'skipped']),
+  CreateItemrefPropertyDescriptor("VM", "VM", !1,  1, \&CreateVMs, ["VMName"]),
+  CreateBasicPropertyDescriptor("Timeout", "Timeout", !1, 1, "N", 4),
+  CreateBasicPropertyDescriptor("CmdLineArg", "Command line args", !1, !1, "A", 256),
+  CreateBasicPropertyDescriptor("Started", "Execution started", !1, !1, "DT", 19),
+  CreateBasicPropertyDescriptor("Ended", "Execution ended", !1, !1, "DT", 19),
+  CreateBasicPropertyDescriptor("TestFailures", "Number of test failures", !1, !1, "N", 6),
+);
+
+=pod
+=over 12
+
+=item C<CreateTasks()>
+
+Creates a collection of Patch objects.
+
+=back
+=cut
+
 sub CreateTasks(;$$)
 {
   my ($ScopeObject, $Step) = @_;
diff --git a/testbot/lib/WineTestBot/UserRoles.pm b/testbot/lib/WineTestBot/UserRoles.pm
index 8f7899a9e..417baf994 100644
--- a/testbot/lib/WineTestBot/UserRoles.pm
+++ b/testbot/lib/WineTestBot/UserRoles.pm
@@ -40,23 +40,17 @@ WineTestBot::UserRoles - A collection of WineTestBot::UserRole objects
 
 =cut
 
+use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::ItemrefPropertyDescriptor;
 use WineTestBot::Roles;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw(@ISA @EXPORT @PropertyDescriptors);
+use vars qw(@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateUserRoles);
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateItemrefPropertyDescriptor("Role", "Role", 1,  1, \&CreateRoles, ["RoleName"]),
-  );
-
-}
 
 sub CreateItem($)
 {
@@ -65,6 +59,20 @@ sub CreateItem($)
   return WineTestBot::UserRole->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateItemrefPropertyDescriptor("Role", "Role", 1,  1, \&CreateRoles, ["RoleName"]),
+);
+
+=pod
+=over 12
+
+=item C<CreateUserRoles()>
+
+Creates a collection of UserRole objects.
+
+=back
+=cut
+
 sub CreateUserRoles(;$$)
 {
   my ($ScopeObject, $User) = @_;
diff --git a/testbot/lib/WineTestBot/Users.pm b/testbot/lib/WineTestBot/Users.pm
index b9745d804..ec89f9b16 100644
--- a/testbot/lib/WineTestBot/Users.pm
+++ b/testbot/lib/WineTestBot/Users.pm
@@ -303,24 +303,12 @@ use WineTestBot::Config;
 use WineTestBot::UserRoles;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw (@ISA @EXPORT @PropertyDescriptors);
+use vars qw (@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateUsers &GetBatchUser &Authenticate);
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("Name",      "Username",   1,  1, "A", 40),
-    CreateBasicPropertyDescriptor("EMail",     "EMail",     !1,  1, "A", 40),
-    CreateEnumPropertyDescriptor("Status",     "Status",    !1,  1, ['active', 'disabled', 'deleted']),
-    CreateBasicPropertyDescriptor("Password",  "Password",  !1,  1, "A", 49),
-    CreateBasicPropertyDescriptor("RealName",  "Real name", !1, !1, "A", 40),
-    CreateBasicPropertyDescriptor("ResetCode", "Password reset code", !1, !1, "A", 32),
-    CreateDetailrefPropertyDescriptor("Roles", "Roles",     !1, !1, \&CreateUserRoles),
-  );
-}
 
 sub CreateItem($)
 {
@@ -329,6 +317,26 @@ sub CreateItem($)
   return WineTestBot::User->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("Name",      "Username",   1,  1, "A", 40),
+  CreateBasicPropertyDescriptor("EMail",     "EMail",     !1,  1, "A", 40),
+  CreateEnumPropertyDescriptor("Status",     "Status",    !1,  1, ['active', 'disabled', 'deleted']),
+  CreateBasicPropertyDescriptor("Password",  "Password",  !1,  1, "A", 49),
+  CreateBasicPropertyDescriptor("RealName",  "Real name", !1, !1, "A", 40),
+  CreateBasicPropertyDescriptor("ResetCode", "Password reset code", !1, !1, "A", 32),
+  CreateDetailrefPropertyDescriptor("Roles", "Roles",     !1, !1, \&CreateUserRoles),
+);
+
+=pod
+=over 12
+
+=item C<CreateUsers()>
+
+Creates a collection of User objects.
+
+=back
+=cut
+
 sub CreateUsers(;$)
 {
   my ($ScopeObject) = @_;
diff --git a/testbot/lib/WineTestBot/VMs.pm b/testbot/lib/WineTestBot/VMs.pm
index 35bbe2a59..e93208201 100644
--- a/testbot/lib/WineTestBot/VMs.pm
+++ b/testbot/lib/WineTestBot/VMs.pm
@@ -639,31 +639,13 @@ use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::EnumPropertyDescriptor;
 use WineTestBot::WineTestBotObjects;
 
-use vars qw (@ISA @EXPORT @PropertyDescriptors);
+use vars qw (@ISA @EXPORT);
 
 require Exporter;
 @ISA = qw(WineTestBot::WineTestBotCollection Exporter);
 @EXPORT = qw(&CreateVMs);
 
 
-BEGIN
-{
-  @PropertyDescriptors = (
-    CreateBasicPropertyDescriptor("Name", "VM name", 1, 1, "A", 20),
-    CreateBasicPropertyDescriptor("SortOrder", "Display order", !1, 1, "N", 3),
-    CreateEnumPropertyDescriptor("Type", "Type of VM", !1, 1, ['win32', 'win64', 'build']),
-    CreateEnumPropertyDescriptor("Role", "VM Role", !1, 1, ['extra', 'base', 'winetest', 'retired', 'deleted']),
-    CreateEnumPropertyDescriptor("Status", "Current status", !1, 1, ['dirty', 'reverting', 'sleeping', 'idle', 'running', 'off', 'offline', 'maintenance']),
-    CreateBasicPropertyDescriptor("ChildPid", "Child process id", !1, !1, "N", 5),
-    CreateBasicPropertyDescriptor("VirtURI", "LibVirt URI of the VM", !1, 1, "A", 64),
-    CreateBasicPropertyDescriptor("VirtDomain", "LibVirt Domain for the VM", !1, 1, "A", 32),
-    CreateBasicPropertyDescriptor("IdleSnapshot", "Name of idle snapshot", !1, 1, "A", 32),
-    CreateBasicPropertyDescriptor("Hostname", "The VM hostname", !1, 1, "A", 64),
-    CreateBasicPropertyDescriptor("Description", "Description", !1, !1, "A", 40),
-    CreateBasicPropertyDescriptor("Details", "VM configuration details", !1, !1, "A", 512),
-  );
-}
-
 sub CreateItem($)
 {
   my ($self) = @_;
@@ -671,6 +653,31 @@ sub CreateItem($)
   return WineTestBot::VM->new($self);
 }
 
+my @PropertyDescriptors = (
+  CreateBasicPropertyDescriptor("Name", "VM name", 1, 1, "A", 20),
+  CreateBasicPropertyDescriptor("SortOrder", "Display order", !1, 1, "N", 3),
+  CreateEnumPropertyDescriptor("Type", "Type of VM", !1, 1, ['win32', 'win64', 'build']),
+  CreateEnumPropertyDescriptor("Role", "VM Role", !1, 1, ['extra', 'base', 'winetest', 'retired', 'deleted']),
+  CreateEnumPropertyDescriptor("Status", "Current status", !1, 1, ['dirty', 'reverting', 'sleeping', 'idle', 'running', 'off', 'offline', 'maintenance']),
+  CreateBasicPropertyDescriptor("ChildPid", "Child process id", !1, !1, "N", 5),
+  CreateBasicPropertyDescriptor("VirtURI", "LibVirt URI of the VM", !1, 1, "A", 64),
+  CreateBasicPropertyDescriptor("VirtDomain", "LibVirt Domain for the VM", !1, 1, "A", 32),
+  CreateBasicPropertyDescriptor("IdleSnapshot", "Name of idle snapshot", !1, 1, "A", 32),
+  CreateBasicPropertyDescriptor("Hostname", "The VM hostname", !1, 1, "A", 64),
+  CreateBasicPropertyDescriptor("Description", "Description", !1, !1, "A", 40),
+  CreateBasicPropertyDescriptor("Details", "VM configuration details", !1, !1, "A", 512),
+);
+
+=pod
+=over 12
+
+=item C<CreateVMs()>
+
+Creates a collection of VM objects.
+
+=back
+=cut
+
 sub CreateVMs(;$)
 {
   my ($ScopeObject) = @_;
-- 
2.16.2



More information about the wine-devel mailing list